SETLOCAL ENABLEDELAYEDEXPANSION,中断SETLOCAL ENABLEDELAYEDEXPANSION,SETLOCAL ENABLEDELAYEDEXPANSION

时间:2013-08-24 19:03:27

标签: windows batch-file 7zip

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来运行

2 个答案:

答案 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"