如何创建一个更好的拖放 .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