Windows命令解释器(CMD.EXE)如何解析脚本?
我遇到了ss64.com,它为如何编写Windows命令解释器将运行的批处理脚本提供了很好的帮助。
但是,我一直无法找到批处理脚本的语法,扩展或不扩展的方法,以及如何逃避事情的良好解释。
以下是我无法解决的示例问题:
如何管理报价系统?我制作了一个TinyPerl脚本
(foreach $i (@ARGV) { print '*' . $i ; }
),编译它并以这种方式调用它:
my_script.exe "a ""b"" c"
→输出是 *a "b*c
my_script.exe """a b c"""
→输出它 *"a*b*c"
内部echo
命令如何工作?在那个命令中扩展了什么?
为什么我必须for [...] %%I
在文件脚本中使用,但for [...] %I
在交互式会话中?
什么是转义字符,以及在什么情况下?如何逃脱百分号?例如,我怎么能%PROCESSOR_ARCHITECTURE%
字面回声?我发现echo.exe %""PROCESSOR_ARCHITECTURE%
有效,有没有更好的解决方案?
如何%
配对?例:
set b=a
,echo %a %b% c%
→%a a c%
set a =b
,echo %a %b% c%
→bb c%
如果此变量包含双引号,如何确保变量作为单个参数传递给命令?
使用set
命令时如何存储变量?例如,如果我这样做set a=a" b
,那么echo.%a%
我获得a" b
。但是,如果我使用echo.exe
UnxUtils,我会得到a b
。怎么%a%
以不同的方式扩展?
谢谢你的灯。