-2

NOTE:这不是重复的!的"Temporarily interrupt SETLOCAL"

我希望能够SETLOCAL ENABLEDELAYEDEXPANSION做某事,然后ENDLOCAL ENABLEDELAYEDEXPANSION做其他事情(7z 命令),然后SETLOCAL ENABLEDELAYEDEXPANSION再次在 .bat 中!因为 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!

我想把它放在一个需要SETLOCAL ENABLEDELAYEDEXPANSION运行的不同的.bat中

4

2 回答 2

1

你可以这样解决你的问题:

set bang=!
SETLOCAL ENABLEDELAYEDEXPANSION
Echo hi!
7z e -o"C:\test" -i!bang!*.jar "C:\*.zip"

只要确保在set bang=!禁用延迟扩展时执行该命令即可。

于 2013-08-24T19:35:05.790 回答
1

7zip 没有延迟扩展的问题。
是感叹号,在7z看到之前会从行中去掉。

你只需要逃脱它们。

SETLOCAL ENABLEDELAYEDEXPANSION
Echo hi^^!
7z e -o"C:\test" -i^^!*.jar "C:\*.zip"
于 2013-08-25T07:15:37.753 回答