为 Windows 10 批处理文件构建自定义 CMD FOR DIR“文件未找到”消息

为 Windows 10 批处理文件构建自定义 CMD FOR DIR“文件未找到”消息

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

相关内容