命令行shell中的参数

nyk*_*las 3 delphi cmd

我在CMD shell中打开一个.exe文件,如下所示: d:/program1.exe text1 text2 text3 text4 text5
如何使用text3 text4 text5作为单个参数?谢谢

Dav*_*nan 6

您应该在包含空格的参数周围使用引号:

d:/program1.exe text1 text2 "text3 text4 text5"

当你调用这样的程序时,ParamStr(1)是'text1',ParamStr(2)是'text2'而ParamStr(3)是'text3 text4 text5'.

  • @ user1533838您必须选择自己的规则来转义引号,然后自己解析命令行.`ParamStr()`不支持转义双引号.通过调用`GetCommandLine`获取命令行. (3认同)
  • 我有几个QC报告与`ParamStr()`和`ParamCount()`解析问题有关 - 见[3946](http://qc.embarcadero.com/wc/qcmain.aspx?d=3946),[ 27451](http://qc.embarcadero.com/wc/qcmain.aspx?d=27451)和[43340](http://qc.embarcadero.com/wc/qcmain.aspx?d=43340).#43340特别指出缺乏对内联引号的支持. (3认同)
  • @jachguate操作系统不会为您解析命令行.这是由RTL完成的.对于Delphi,其RTL支持是ParamStr.这不支持包含双引号的参数 (2认同)