我正在尝试设计一个批处理程序,扫描我的计算机上的D:\以获取CD专辑,然后打开一个程序来播放它。我不想使用自动播放,因为我想为此目的设计自己的自定义程序。我正在使用IF语句和GOTO语句,该语句在延迟后循环回IF语句。这就是我所拥有的:
:rescan
if exist D:\Track01.cda start (my soon-to-be music playing program)
timeout 2 /NOBREAK
goto rescan
问题是如果驱动器中没有CD,则IF语句会弹出一个单独的错误消息窗口。
有没有办法阻止此消息?
答案 0 :(得分:0)
我认为没有办法阻止此消息,因为它发生在批处理文件的控制之外。但是我在进入循环之前检查了驱动器的存在,这似乎适用于我的测试。
IF EXIST D:\ GOTO rescan
echo Drive does not exist
goto end
:rescan
if exist D:\Track01.cda echo start (my soon-to-be music playing program)
timeout 6 /NOBREAK
goto rescan
:end
希望它可以帮助你。
答案 1 :(得分:0)
使用另一个命令:
dir D:\track01.cda 1>nul 2>&1 && start (your program)
如果没有磁盘,dir
会返回The device is not ready.
和%errorlevel%
1
。如果有磁盘但没有音频磁盘(没有“track01.cda”),dir
将返回“找不到文件”,%errorlevel%
为1
(dir
的所有输出都会重定向到nul
以保持屏幕清晰 - 如果您想要输出,请更改它。
&&
用作“如果之前的命令成功则”(“如果%errorlevel%不为0”)