感叹号是我使用 Windows Batch 的祸根。假设我只想跳过其中包含的文件名!
。
我知道在 for 循环中检查变量中的常规文本,我可以运行:
setlocal enabledelayedexpansion
for /r %%a in (*) do (
set fname=%%~na
if not "!fname!"=="!fname:text=!" ECHO File contains the word "text"
)
但是如何指定感叹号呢?
我试图用 ^ 来逃避它:"!fname:^!=!"
然后我看到使用 enabledelayedexpansion 你需要一个^^!
来转义角色。所以我尝试了没有运气。然后我想可能三个^^^!
两个来逃避延迟扩展,一个在文件名中......
没运气...
有什么建议么?
以下注释脚本揭示了秘密:
结果:
D:\bat\SU\1552419.bat