批处理期间如何避免“驱动器中没有磁盘”错误

时间:2012-03-05 03:03:55

标签: batch-file

我正在运行一个批处理文件,该文件会在每个硬盘驱动器号中搜索该驱动器根目录中是否存在特定文件。

示例:

@echo off

for %%a in (C D E F G H I J K) do if exist %%a:\myfile.txt set DEST=%%a:

XCOPY "my app.exe" "%DEST%\" /i /y

但是,如果其中一个驱动器中没有磁盘被检查(尤其是读卡器),我会收到一条错误消息,THERE IS NO DISK IN DRIVE等等...批次停止,需要用户输入,然后单击“继续”成功复制文件的2到3次。

我想避免这种情况,但仍然搜索所有可能的驱动器号......

理想情况下,我想要禁止任何暂停以及任何错误消息......

PS:myfile.txt始终只在固定驱动器中

3 个答案:

答案 0 :(得分:0)

检查磁盘是否已插入,您可能需要尝试

检查目录是否存在,在您的情况下是可移动驱动器的根目录,试试这个。

    IF EXIST %%a:\NUL ECHO %%a:\ exists!

答案 1 :(得分:0)

你可以使用PA。部分答案来完成这一切......

对于(C D E F G H I J K)中的%a,如果存在,则执行%a:\如果存在%a:\ myfile.txt xcopy“my app.exe”%a:\ / i / y

答案 2 :(得分:0)

这个问题已经过去了一年,但这是解决方案:

@echo off

FOR %%a IN (C D E F G H I J K) DO (
    IF EXIST "%%a:\myfile.txt" (
        SET DEST=%%a:
        goto :found
    )
)

:found
XCOPY ..\"app1.exe" "%DEST%\Softwares\" /i /y
XCOPY ..\"app2.exe" "%DEST%\Softwares\" /i /y