windows - 批处理脚本:\MyProg 此时出乎意料
问题描述
我有一个简单的批处理脚本test.bat
,它通过命令行参数进行迭代:
@echo off
set prefix=C:\Program Files\MyProg
for %%x in (%*) do (
echo %prefix%
)
此版本的脚本在 cmd.exe 中没有问题:
C:\>test a b
C:\Program Files\MyProg
C:\Program Files\MyProg
但是,如果我将批处理文件修改为具有不同的prefix
值,请添加(x86)
:
set prefix=C:\Program Files (x86)\MyProg
脚本失败:
C:\>test a b
\MyProg was unexpected at this time.
这悲剧!我该如何解决这个问题?
解决方案
启用EnableDelayedExpansion
解决!prefix!
此问题:
@echo off
set prefix=C:\Program Files (x86)\MyProg
setlocal EnableDelayedExpansion
for %%x in (%*) do (
echo !prefix!
)
endlocal
!难以置信的!
推荐阅读
- python - pyautogui.locateCenterOnScreen 不断返回 NoneType 对象
- keras - 在 Watson 机器学习上部署使用自定义损失函数训练的模型
- python - 添加页面标题,img2pdf
- soap - 更改 zeep 绑定
- python - Cron Job 未在 centos 7 中执行
- agens-graph - 如何在 AgentGraph 上找到锁定等待查询?
- swift - 明天如何将 NSDate 存储到 Firebase 中?
- r - 如何将参数传递给 PowerBI Embedded Report
- merge - OWL API 合并个人
- windows - 一个循环中的两个条件(批处理文件)