阻止批处理文件中的if语句错误消息

时间:2015-11-13 00:54:46

标签: batch-file if-statement

我正在尝试设计一个批处理程序,扫描我的计算机上的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语句会弹出一个单独的错误消息窗口。

有没有办法阻止此消息?

2 个答案:

答案 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”)