NOTE:
这不是重复!! OF "Temporarily interrupt SETLOCAL"
我希望能够SETLOCAL ENABLEDELAYEDEXPANSION
然后执行某些操作,然后ENDLOCAL ENABLEDELAYEDEXPANSION
再次执行其他操作(7z命令),然后在.bat中再次执行SETLOCAL ENABLEDELAYEDEXPANSION
!因为7z.exe不允许SETLOCAL ENABLEDELAYEDEXPANSION
。见
代码:
SETLOCAL ENABLEDELAYEDEXPANSION
Echo hi!
7z e -o"C:\test" -i!*.jar "C:\*.zip"
输出:
hi!
Error: incorrect command line
当我将代码更改为:
Echo hi!
7z e -o"C:\test" -i!*.jar "C:\*.zip"
它有效!!!!!!
这是我的代码到目前为止中断SETLOCAL ENABLEDELAYEDEXPANSION
,遗憾的是它不起作用。
SETLOCAL ENABLEDELAYEDEXPANSION
Echo hi!
Endlocal
7z e -o"C:\test" -i!*.jar "C:\*.zip"
SETLOCAL ENABLEDELAYEDEXPANSION
Echo hi!
我想把它放在一个不同的.bat中,需要SETLOCAL ENABLEDELAYEDEXPANSION
来运行
答案 0 :(得分:1)
您可以通过这种方式解决问题:
set bang=!
SETLOCAL ENABLEDELAYEDEXPANSION
Echo hi!
7z e -o"C:\test" -i!bang!*.jar "C:\*.zip"
请确保在禁用延迟扩展时执行set bang=!
命令。
答案 1 :(得分:1)
7zip没有延迟扩展的问题 这是感叹号,它会在7z之前从线上删除。
你只需要逃脱它们。
SETLOCAL ENABLEDELAYEDEXPANSION
Echo hi^^!
7z e -o"C:\test" -i^^!*.jar "C:\*.zip"