application1运行带有2个参数的另一个application2,例如:(注意:application1不是我的程序)
application2.exe -d:C:\Program Files\app folder -z:Folder menu\app icons
问题是...报价以某种方式消失了,所以代替2个参数,application2将获得5个参数
Param1=-d:C:\Program
Param2=Files\app
Param3=folder
Param4=-z:Folder menu\app
Param5=app icons
有没有办法将所有参数检索为单个字符串?
我尝试在循环中组合参数
for i:=1 to ParamCount do
parameters=parameters+' '+ParamStr(i);
但这不是一个好的解决方案,因为路径也可以包含双倍或三倍空格。
Program files\app folder\
cmd.exe可以捕获%*中的所有参数,但是如果参数包含诸如^^〜@@ &&之类的特殊字符,则会产生错误结果。
调用Windows API函数GetCommandLine
以检索原始命令行。
var
CmdLine: string;
....
CmdLine := GetCommandLine;
您最好希望您永远不需要使用名称包含空格后的破折号的文件!谨慎地说服其他应用程序的作者进行编程。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句