【发布时间】:2012-04-13 10:01:34
【问题描述】:
我想读取两个传递给批处理文件的参数。批处理文件将使用 CreateProcess 方法从 C++ 程序中执行。批处理文件的第二个参数是文件夹路径,因此如果我传递第二个参数(例如“E:\test folder\test2”),则程序不会执行批处理文件。
但如果我改为传递 E:\test folder\test2 批处理文件将被执行,但显然第二个参数的值 E:\test 只有.. 所以我想做的是使用 % 读取第一个参数1 并将其余内容放入另一个变量中。
有人可以告诉我如何实现这一目标吗?我尝试使用 %* ,但它给了我第一个和第二个参数。我想删除第一个以空格作为分隔符的标记,以便将其余内容保存在变量中。有没有办法做到这一点 ?
例如如果我通过 test.bat testparameter1 E:\test folder\test folder2\test folder3
我想将值 E:\test folder\test folder2\test folder3 读入一个变量。
如果我通过 test.bat testparameter1 E:\test\test folderX\test folderY 值我想读入批处理文件中的变量是 E:\test\test folderX\test folderY
有人可以帮我解决这个问题吗?提前致谢。
【问题讨论】:
-
你能展示你完整的 CreateProcess 语句吗?我怀疑您的第二个论点周围的引号需要转义。
标签: command-line batch-file arguments space delimiter