批处理脚本多选菜单
Batch script multiple choice menu
我有多媒体文件查看软件,我在批处理脚本中调用该软件以使用 /LOADFILES 参数加载文件。此参数接受以分号“;”分隔的多个文件。
我想要一个菜单,我可以从中 select 我想打开的文件。
例如:
- Sample_01
- Sample_02
- Sample_03
- Sample_04
- Sample_05
- 全部
你的选择是什么?
我们 selected 最终存储在一个变量中,该变量由 /LOADFILES 参数解释。
目前,我的脚本能够一个接一个地打开所有现有样本:
@echo off
for /f "delims=" %%I in ('dir /a:d-h /b "%SystemDrive%\software\sample\*"') do (
"%SystemDrive%\software\Viewer.exe" /LOADFILES="%%I"
)
pause
exit
但我希望它能够只读取我从菜单中 select编辑的示例,在程序的单独实例中。
我不知道如何实现这个。
任何帮助都会极大地帮助我改进脚本。
谢谢。
这是一个(非常基本的)脚本来向您展示基本概念:
@echo off
setlocal
set "loadfiles="
:AddSamples
cls
echo current loadfiles: %loadfiles:~1%
echo add sample number
echo 1 - Sample_01
echo 2 - Sample_02
echo 3 - Sample_03
echo 4 - Sample_04
echo 5 - Sample_05
echo A - All and Go
echo G - Done and Go
choice /c 12345AG /m "What is your choice? "
if %errorlevel% == 1 set "loadfiles=%loadfiles%;Sample_01.mp3
if %errorlevel% == 2 set "loadfiles=%loadfiles%;Sample_02.mp3
if %errorlevel% == 3 set "loadfiles=%loadfiles%;Sample_03.mp3
if %errorlevel% == 4 set "loadfiles=%loadfiles%;Sample_04.mp3
if %errorlevel% == 5 set "loadfiles=%loadfiles%;Sample_05.mp3
if %errorlevel% == 6 set "loadfiles=;Sample_01.mp3;Sample_02.mp3;Sample_03.mp3;Sample_04.mp3;Sample_05.mp3" & goto :continue
if %errorlevel% == 7 goto :continue
goto :AddSamples
:Continue
set "loadfiles=%loadfiles:~1%"
"%SystemDrive%\software\Viewer.exe" /LOADFILES=%loadfiles%
我有多媒体文件查看软件,我在批处理脚本中调用该软件以使用 /LOADFILES 参数加载文件。此参数接受以分号“;”分隔的多个文件。
我想要一个菜单,我可以从中 select 我想打开的文件。
例如:
- Sample_01
- Sample_02
- Sample_03
- Sample_04
- Sample_05
- 全部
你的选择是什么?
我们 selected 最终存储在一个变量中,该变量由 /LOADFILES 参数解释。
目前,我的脚本能够一个接一个地打开所有现有样本:
@echo off
for /f "delims=" %%I in ('dir /a:d-h /b "%SystemDrive%\software\sample\*"') do (
"%SystemDrive%\software\Viewer.exe" /LOADFILES="%%I"
)
pause
exit
但我希望它能够只读取我从菜单中 select编辑的示例,在程序的单独实例中。
我不知道如何实现这个。
任何帮助都会极大地帮助我改进脚本。
谢谢。
这是一个(非常基本的)脚本来向您展示基本概念:
@echo off
setlocal
set "loadfiles="
:AddSamples
cls
echo current loadfiles: %loadfiles:~1%
echo add sample number
echo 1 - Sample_01
echo 2 - Sample_02
echo 3 - Sample_03
echo 4 - Sample_04
echo 5 - Sample_05
echo A - All and Go
echo G - Done and Go
choice /c 12345AG /m "What is your choice? "
if %errorlevel% == 1 set "loadfiles=%loadfiles%;Sample_01.mp3
if %errorlevel% == 2 set "loadfiles=%loadfiles%;Sample_02.mp3
if %errorlevel% == 3 set "loadfiles=%loadfiles%;Sample_03.mp3
if %errorlevel% == 4 set "loadfiles=%loadfiles%;Sample_04.mp3
if %errorlevel% == 5 set "loadfiles=%loadfiles%;Sample_05.mp3
if %errorlevel% == 6 set "loadfiles=;Sample_01.mp3;Sample_02.mp3;Sample_03.mp3;Sample_04.mp3;Sample_05.mp3" & goto :continue
if %errorlevel% == 7 goto :continue
goto :AddSamples
:Continue
set "loadfiles=%loadfiles:~1%"
"%SystemDrive%\software\Viewer.exe" /LOADFILES=%loadfiles%