Windows 10 64 位。
当您第 101 次运行批处理文件时,它会弹出以下消息:“未找到文件”。
您花了很长时间来追踪消息来源,因此您决定编写自定义消息,但您不知道如何在 FOR 命令中使用转义字符、重定向、管道、条件执行、if/then/else 和嵌套括号,或者,就此而言,您不知道最佳的处理方法。
为了简洁和清晰起见,命令已经经过严格编辑。
生成消息的命令:
FOR /f "tokens=*" %%a in ('DIR /b "*.mov"') do (SET /A COUNT+=1 &@ren "%%a" "%%~na-!COUNT!.mov")
如果没有*.mov
文件,DIR 命令将输出“未找到文件”。
这些是我目前拥有的替代方案。请发布您自己的解决方案、评论或答案。
DIR /b "*.mov" | FINDSTR /i /n /c:"File Not Found">NUL && echo No video to process. || FOR /f "tokens=*" %%a in ('DIR /b "*.mov"') do (SET /A COUNT+=1 &@ren "%%a" "%%~na-!COUNT!.mov")
DIR /b "*.mov" | FINDSTR /i /n /c:"File Not Found">NUL && (echo No video to process. &GOTO :continue)
FOR /f "tokens=*" %%a in ('DIR /b "*.mov"') do (SET /A COUNT+=1 &@ren "%%a" "%%~na-!COUNT!.mov")
:continue
FOR /f "tokens=*" %%a in ('DIR /b "*.mov" 2^>nul ^|^|(echo No video to process^)') do if "%%a"=="No video to process" (echo No video to process) else for /f "tokens=*" %%a in ('dir /b /a-d "*.mov"') do (SET /A COUNT+=1 &@ren "%%a" "%%~na-!COUNT!.mov")
答案1
- 如果不考虑目录失败可能有其他原因
(权限/不存在的驱动器等)
命令行:
for /f "tokens=*" %a in ('dir /b "*.mov" 2^>nul ^|^|(echo:No video to process^)') do @echo %a
批处理文件:
@Echo off
for /f "tokens=*" %%a in ('
dir /b "*.mov" 2^>nul ^|^|(echo:No video to process^)
') do echo %%a