i3i*_*5i7 3 string comparison filenames batch-file
我试图做的基本上与这个问题相同,即我想循环遍历目录中的文件,但排除名称中包含特定字符串的文件(在我的例子中为“.new”。但是,问题是我正在使用的
setlocal DisableDelayedExpansion
Run Code Online (Sandbox Code Playgroud)
因为我希望批处理也可以处理包含感叹号的文件名。因此,我尝试直接使用循环变量 %%x 而不是新变量来使解决方案工作,但这似乎不起作用:
setlocal DisableDelayedExpansion
For %%x in (*.mkv *.mp4) do (
If "%%x" == "%%x:.new." (
Echo Skipped "%%x"
) Else (
Echo Processing "%%x"
)
)
Run Code Online (Sandbox Code Playgroud)
字符串匹配不起作用,即我明白了
Processing "file.mkv"
Processing "file.new.mkv"
Run Code Online (Sandbox Code Playgroud)
任何关于我如何让它发挥作用的提示将不胜感激;谢谢!
批量字符串操作命令不能直接应用于metavariableslike %%x。
echo %%x|findstr /i /L ".new.">nul
if errorlevel 1 (
echo process %%x
) else (
echo skip %%x
)
Run Code Online (Sandbox Code Playgroud)
应该适合你,从字面上查找字符串.new. /l,/i不区分大小写。如果找到则设置为非errorlevel0 0,否则设置为非 0。
| 归档时间: |
|
| 查看次数: |
8449 次 |
| 最近记录: |