加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Delphi如何将所有参数检索为单个字符串

发布时间:2020-12-15 09:48:32 所属栏目:大数据 来源:网络整理
导读:application1运行另一个带有2个参数的application2,例如: (注意:application1不是我的程序) application2.exe -d:C:Program Filesapp folder -z:Folder menuapp icons 问题是……引号不知何故消失了,所以代替2个参数application2将获得5个参数 Param1=-
application1运行另一个带有2个参数的application2,例如:
(注意:application1不是我的程序)

application2.exe -d:C:Program Filesapp folder -z:Folder menuapp icons

问题是……引号不知何故消失了,所以代替2个参数application2将获得5个参数

Param1=-d:C:Program
Param2=Filesapp
Param3=folder
Param4=-z:Folder menuapp
Param5=app icons

有没有办法将所有参数检索为单个字符串?

我尝试在循环中组合参数

for i:=1 to ParamCount do
parameters=parameters+' '+ParamStr(i);

但这不是一个好的解决方案,因为路径也可以包含双重或三重空间
例如.

Program filesapp   folder

cmd.exe可以捕获%*中的所有参数,但如果参数包含特殊字符,例如^^?@@&& …

解决方法

调用Windows API函数 GetCommandLine以检索原始命令行.

var
  CmdLine: string;
....
CmdLine := GetCommandLine;

您最好希望永远不需要使用名称中包含空格的破折号的文件!试图说服其他应用程序的作者修复他们的编程是谨慎的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读