0

我需要一个批处理脚本来列出.avi| .mp4 并为包含此类文件的所有目录运行命令:

mencoder.exe <some_arguments> -o "output/(name_of_directory).mp4" <list_of_files_in_directory_spearated_by_spaces_evey_file_quoted>

有人可以帮我吗?有可能吗?

我用 PHP 编写了一个脚本,用 BamCompile 编译它,但它在 Windows 8 上的行为似乎完全不同,数组正在转换为字符串,并且发生了一些非常奇怪的事情......

4

2 回答 2

0

看看这是否能让你的船浮起来。 !字符在路径和文件名中是禁止使用的。

@echo off
setlocal enabledelayedexpansion
cd /d "%userprofile%\Videos"
for /f "delims=" %%a in ('dir /s /b /a-d *.avi *.mp4') do (
   for /f "delims=" %%b in ("%%~dpa.") do (
        set "line="
        for %%c in ("%%~dpa*.*") do set line=!line! "%%c"
        echo mencoder.exe [some_arguments] -o "output\%%~nxb.mp4" !line!
        pause
   )
)
于 2013-09-27T09:44:13.493 回答
0

尝试这个:

@echo off &setlocal
cd /d "%userprofile%\Videos"
for /f "tokens=1*delims=:" %%a in ('dir /b /a-d *.avi *.mp4^|findstr /n $') do set "$%%a=%%~b"

setlocal enabledelayedexpansion
for /f "tokens=1*delims==" %%a in ('set "$" 2^>nul') do set "line=!line! "%%~b""

echo mencoder.exe [some_arguments] -o "output/(name_of_directory).mp4" %line%

查看输出并删除echo它是否看起来不错。

于 2013-09-26T20:51:22.710 回答