我希望有一个Batch(或PowerShell)文件,该文件遍历所有带有电影文件的子文件夹,并在该电影文件上运行Handbrake(应用程序),然后将文本文件输出到该文件夹作为确认方式该文件夹已被处理。这对于v1来说很好,但是对于v2我需要检查一下该文件是否存在......这就是我被困住的地方。
当前的FOR命令是;
for /R .\ %%a in (*.avi,*.divx,*.m4v,*.mkv,*.mp4) do "%ProgramFiles%\Handbrake\HandBrakeCLI" --preset="iPod" --optimize --turbo --input="%%a" --output="E:\MobileMovies\%%~na.mp4"
提前致谢并希望有道理......
答案 0 :(得分:0)
您需要使用if [not] exist
,例如:
if not exist myfile.txt for /R .\ %%a in (*.avi,*.divx,*.m4v,*.mkv,*.mp4) do "%ProgramFiles%\Handbrake\HandBrakeCLI" --preset="iPod" --optimize --turbo --input="%%a" --output="E:\MobileMovies\%%~na.mp4"
答案 1 :(得分:0)
for /R .\ %%a in (*.avi,*.divx,*.m4v,*.mkv,*.mp4
) do if not exist "%%~fa.processed" (
"%ProgramFiles%\Handbrake\HandBrakeCLI" --preset="iPod" --optimize --turbo --input="%%a" --output="E:\MobileMovies\%%~na.mp4"
break > "%%~fa.processed"
)
对于集合中的每个文件,如果在同一目录中不存在标志文件name.extension.processed
文件,则重新编码并生成标志文件