Mik*_*e T 2 windows batch-file
我有一个简单的批处理脚本test.bat
,它通过命令行参数进行迭代:
@echo off
set prefix=C:\Program Files\MyProg
for %%x in (%*) do (
echo %prefix%
)
Run Code Online (Sandbox Code Playgroud)
这个版本的脚本在 cmd.exe 中没有问题:
C:\>test a b
C:\Program Files\MyProg
C:\Program Files\MyProg
Run Code Online (Sandbox Code Playgroud)
但是,如果我修改批处理文件以具有不同的prefix
值,则添加(x86)
:
set prefix=C:\Program Files (x86)\MyProg
Run Code Online (Sandbox Code Playgroud)
脚本失败:
C:\>test a b
\MyProg was unexpected at this time.
Run Code Online (Sandbox Code Playgroud)
这悲剧!我该如何解决这个问题?
启用EnableDelayedExpansion
with!prefix!
解决了这个问题:
@echo off
set prefix=C:\Program Files (x86)\MyProg
setlocal EnableDelayedExpansion
for %%x in (%*) do (
echo !prefix!
)
endlocal
Run Code Online (Sandbox Code Playgroud)
!逆天!
归档时间: |
|
查看次数: |
278 次 |
最近记录: |