如何创建一个更好的拖放 .BAT 文件来处理我选择的尽可能多的文件?

如何创建一个更好的拖放 .BAT 文件来处理我选择的尽可能多的文件?

如何创建一个更好的拖放 .BAT 文件来处理我选择的尽可能多的文件?

此批处理文件的目的是将任何带有声音的文件(mp3、ogg、mp4 等)转换为 wav。我希望能够一次转换 9 个以上。

@ECHO OFF
ECHO "%~1"
ECHO "%~2"
ECHO "%~3"
ECHO "%~4"
ECHO "%~5"
ECHO "%~6"
ECHO "%~7"
ECHO "%~8"
ECHO "%~9"
"C:\Program Files\VideoLAN\VLC\vlc.exe" "%~1" --no-random --sout-file-format --sout=#transcode{acodec=s16l,channels=2,samplerate=44100}:std{access=file,mux=wav,dst="%~1.wav"} vlc://quit
"C:\Program Files\VideoLAN\VLC\vlc.exe" "%~2" --no-random --sout-file-format --sout=#transcode{acodec=s16l,channels=2,samplerate=44100}:std{access=file,mux=wav,dst="%~2.wav"} vlc://quit
"C:\Program Files\VideoLAN\VLC\vlc.exe" "%~3" --no-random --sout-file-format --sout=#transcode{acodec=s16l,channels=2,samplerate=44100}:std{access=file,mux=wav,dst="%~3.wav"} vlc://quit
"C:\Program Files\VideoLAN\VLC\vlc.exe" "%~4" --no-random --sout-file-format --sout=#transcode{acodec=s16l,channels=2,samplerate=44100}:std{access=file,mux=wav,dst="%~4.wav"} vlc://quit
"C:\Program Files\VideoLAN\VLC\vlc.exe" "%~5" --no-random --sout-file-format --sout=#transcode{acodec=s16l,channels=2,samplerate=44100}:std{access=file,mux=wav,dst="%~5.wav"} vlc://quit
"C:\Program Files\VideoLAN\VLC\vlc.exe" "%~6" --no-random --sout-file-format --sout=#transcode{acodec=s16l,channels=2,samplerate=44100}:std{access=file,mux=wav,dst="%~6.wav"} vlc://quit
"C:\Program Files\VideoLAN\VLC\vlc.exe" "%~7" --no-random --sout-file-format --sout=#transcode{acodec=s16l,channels=2,samplerate=44100}:std{access=file,mux=wav,dst="%~7.wav"} vlc://quit
"C:\Program Files\VideoLAN\VLC\vlc.exe" "%~8" --no-random --sout-file-format --sout=#transcode{acodec=s16l,channels=2,samplerate=44100}:std{access=file,mux=wav,dst="%~8.wav"} vlc://quit
"C:\Program Files\VideoLAN\VLC\vlc.exe" "%~9" --no-random --sout-file-format --sout=#transcode{acodec=s16l,channels=2,samplerate=44100}:std{access=file,mux=wav,dst="%~9.wav"} vlc://quit

答案1

我希望能够一次转换超过 9 个。

您最多可以转换255

您可以使用 % 后跟命令行上的数字位置来获取任何参数的值。传递的第一项始终是 %1,第二项始终是 %2,依此类推。

批处理脚本中的 %* 指的是所有参数(例如 %1 %2 %3 %4 %5 ...%255),只有参数 %1 到 %9 可以用数字引用。

来源:参数/参数 - Windows CMD - SS64.com

使用以下shift命令让生活变得更轻松:

仅参数 %1 至 %9 可通过数字引用,但可以传递超过 9 个参数。SHIFT 命令提供了一种访问这些附加参数值的方法。

来源:Shift - 重新定位命令行参数 - Windows CMD - SS64.com

请参阅上面的链接以获取示例。

答案2

set "vlcConvert=C:\Program Files\VideoLAN\VLC\vlc.exe"

for %%a in (%*) do "%vlcConvert%" %%a --no-random --sout-file-format --sout=#transcode{acodec=s16l,channels=2,samplerate=44100}:std{access=file,mux=wav,dst=%%a.wav} vlc://quit

pause

相关内容