我知道那里有很多东西,但我无法让它发挥作用。我想做的是
@ECHO OFF
FOR /D %%D IN (*) Do (
ECHO %%D
if not exists %%D.mp4 (
rem cd %%D
rem "C:\Program Files\Handbrake\HandBrakeCLI.exe" -i "VIDEO_TS" -o "..\%%D.mp4" --preset="High Profile" --x264-preset slow
echo not exists
)
rem cd ..\
)
我把额外的东西留在那里,所以你可以看到我实际上需要/ D而不是/ R.基本上我将其他文件夹中的VIDEO_TS文件夹转换为父名称的mp4并将其放在根目录中。
问题是检查文件是否已存在。我无法弄清楚如何创建一条存在的路径"将识别出var %% D和后缀.mp4
非常感谢任何帮助。
谢谢,
R
答案 0 :(得分:0)
这里有两个错误
EXIST
,而非EXISTS
。示例:
@ECHO OFF
FOR /D %%D IN (*) DO (
ECHO %%D
IF NOT EXIST "%%D.mp4" (
ECHO not exists
)
)
此外,如果您取消注释其他行,则会遇到问题,因为cd ..
与cd "%%D"
的分支级别不同(请注意我在此处添加了双引号)。您应该将其移到IF
块中。
但是,您可以简单地将"%%D\VIDEO_TS"
传递给Handbrake。
FOR /D %%D IN (*) DO (
IF NOT EXIST "%%D.mp4" (
echo Encoding %%D ...
"C:\Program Files\Handbrake\HandBrakeCLI.exe" -i "%%D\VIDEO_TS" -o "%%D.mp4" --preset="High Profile" --x264-preset slow
)
)
或者您可以使用pushd
和popd
:
FOR /D %%D IN (*) DO (
pushd .
IF NOT EXIST "%%D.mp4" (
cd "%%D"
echo Encoding %%D ...
"C:\Program Files\Handbrake\HandBrakeCLI.exe" -i "VIDEO_TS" -o "..\%%D.mp4" --preset="High Profile" --x264-preset slow
)
popd
)