我遇到了ss64.com,它提供了有关如何编写Windows Command Interpreter将运行的批处理脚本的良好帮助。
但是,我无法找到关于批处理脚本的语法,事物如何扩展或不扩展以及如何逃避事物的很好的解释。
以下是我无法解决的示例问题:
- 报价系统如何管理?我制作了一个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%
以不同的方式扩展?
谢谢你的灯。