Lar*_*rry 1 windows shell cmd batch-file
程序A(cmd.exe\C)(取1个参数)
程序B :(取一个或多个参数)
C1,C2,C3,......:一个agruments列表
如果我输入A B C1 C2 C3
cmd提示符,则需要解释
A (B (C1 C2 C3))
(C是B的参数,B是A的参数)
但不是AS A (B) (C1) (C2) (C3)
(B,C1,C2,C3,....是A的论据)
我应该如何在cmd提示符中转义/重定向/管道?
提前致谢
根据Microsoft的文档,您可以将|
操作符用于管道.
您需要将命令重写为:
B C1 C2 C3 | A
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
UPDATE
既然你更新了你的问题,我想你正在尝试做类似的事情:
cmd.exe /C B C1 C2 C3
Run Code Online (Sandbox Code Playgroud)
你可以用特殊字符来逃避 ^
或尝试引用字符串,如下所示:
cmd.exe /C "B C1 C2 C3"
Run Code Online (Sandbox Code Playgroud)
更新2
如果你有问题cmd.exe /C
和引号(例如B,C1,C2,C3包含空格),你应该用另一对引号括起整个命令
cmd.exe /C ""B" "C1" "C2" "C3""
Run Code Online (Sandbox Code Playgroud)
仅供参考,在Microsoft的cmd.exe文档Processing quotation marks
部分中:
如果指定/ c或/ k,cmd将处理字符串的其余部分,并且仅在满足以下所有条件时才保留引号:
- 你不使用/ s.
- 您只使用一组引号.
- 您不要在引号内使用任何特殊字符(例如:&<>()@ ^ |).
- 您在引号内使用一个或多个空格字符.
- 引号内的字符串是可执行文件的名称.
如果不满足先前的条件,则通过检查第一个字符来处理字符串以验证它是否是开始引号.如果第一个字符是开始引号,则它将与右引号一起被剥离.保留右引号后面的任何文本.
您可能还想阅读语法:转义字符,分隔符和引号:
在程序路径中启动带有空格的批处理脚本,需要"引号"
CMD /k ""c:\batch files\test.cmd" "Parameter 1 with space" "Parameter2 with space""
归档时间: |
|
查看次数: |
1965 次 |
最近记录: |