Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file HandbrakeCLI无法识别的文件类型_Batch File_Handbrakecli - Fatal编程技术网

Batch file HandbrakeCLI无法识别的文件类型

Batch file HandbrakeCLI无法识别的文件类型,batch-file,handbrakecli,Batch File,Handbrakecli,我正在尝试设置一个简单的批处理文件来使用手刹压缩视频。我安装了手刹,发现需要单独安装手刹CLI。我下载了HandBrakeCLI.exe并将其放在C:\。然后我做了一个预设,并使用GUI将其设置为默认值。然后我这样称呼手刹: 我收到以下错误,告诉我文件类型无法识别: [10:19:30] dvd: not a dvd - trying as a stream/file instead [10:19:30] hb_stream_open: open 'C:\Users\rv\Desktop\New

我正在尝试设置一个简单的批处理文件来使用手刹压缩视频。我安装了手刹,发现需要单独安装手刹CLI。我下载了HandBrakeCLI.exe并将其放在C:\。然后我做了一个预设,并使用GUI将其设置为默认值。然后我这样称呼手刹:

我收到以下错误,告诉我文件类型无法识别:

[10:19:30] dvd: not a dvd - trying as a stream/file instead
[10:19:30] hb_stream_open: open 'C:\Users\rv\Desktop\Newfolder\126_812-714A_812-713_111914_san.mpg' 
failed
[10:19:30] scan: unrecognized file type
[10:19:30] libhb: scan thread found 0 valid title(s)
No title found.
有没有想过为什么命令行版本突然无法打开文件?同一文件可以在GUI中打开并转换

我尝试重新安装所有内容并删除预设文件夹,尽管这似乎不是问题所在

更新: 这是最后一个适合我的代码

@echo off
set /A count_complete = 0
set /A count_total = 0
pushd %~dp0
for /R %%f in (*.mp2, *.mpg, *.vob, *.avi, *.wmv, *.mov, *.m4v, *.mpeg, *.mp4) do (
   set /A count_total+=1
)
for /R %%f in (*.mp4) do (
   echo Count is currently %count% of %count_total%
   C:\HandBrakeCLI --preset-import-gui C:\Users\xxx\Desktop\customencode.json -Z "CustomCompress" -i "%%f" -o "%%~dpf%%~nf_conv.mp4"
    if exist "%%~dpf%%~nf_conv.mp4" (
        del "%%f"
        ren "%%~dpf%%~nf_conv.mp4" "%%~nf.mp4"
        set /A count_complete+=1
    ) 
)
for /R %%f in (*.mp2, *.mpg, *.vob, *.avi, *.wmv, *.mov, *.m4v, *.mpeg) do (
   echo Count is currently %count% of %count_total%
   C:\HandBrakeCLI --preset-import-gui C:\Users\xxxxx\Desktop\customencode.json -Z "CustomCompress" -i "%%f" -o "%%~dpf%%~nf_conv.mp4"
    if exist "%%~dpf%%~nf_conv.mp4" (
        del "%%f"
        ren "%%~dpf%%~nf_conv.mp4" "%%~nf.mp4"
        set /A count_complete+=1
    )
)
popd
echo Count is: %count% out of %count_try% attempted.
pause

我需要用双引号而不是单引号。像这样:

@echo off
for %%f in (*.mpg) do (
C:\HandBrakeCLI -i "C:\Users\rv\Desktop\Newfolder\%%f" -o "C:\encode\%%f.mp4"
)
pause

批处理文件位于何处?批处理文件位于包含视频的文件夹中并从该文件夹运行,即C:\Users\rv\Desktop\Newfolder\您需要使用双引号,而不是单引号。我还将输出选项更改为:C:\encode\%%~nf.mp4。tilde和n表示没有扩展名的文件名。呸,你说得对,是引号。我很尴尬。谢谢
@echo off
for %%f in (*.mpg) do (
C:\HandBrakeCLI -i "C:\Users\rv\Desktop\Newfolder\%%f" -o "C:\encode\%%f.mp4"
)
pause