Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何避免;“驱动器中没有磁盘”;批处理期间出错_Batch File - Fatal编程技术网

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

Batch file 如何避免;“驱动器中没有磁盘”;批处理期间出错,batch-file,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 但是,如果正在检查的某个驱动器(尤其是读卡器)中没有磁盘,我会收到一条错误消息,驱动器中没有磁盘,等等。。。批处理停止,需要用户输入,并单击“继续”2或3次文件复制成

我正在运行一个批处理文件,它会在每个硬盘盘符中搜索该硬盘根目录中是否存在特定的文件

例如:

@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
但是,如果正在检查的某个驱动器(尤其是读卡器)中没有磁盘,我会收到一条错误消息,
驱动器中没有磁盘
,等等。。。批处理停止,需要用户输入,并单击“继续”2或3次文件复制成功

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

理想情况下,我希望抑制任何停止以及任何错误消息


备注:
myfile.txt
始终仅位于固定驱动器中

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

要检查目录是否存在,在您的情况下是可移动驱动器的根目录,请尝试以下操作

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

你可以一次完成这一切,比如,使用PA的部分答案


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

此问题已过去一年,但解决方案如下:

@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
谢谢,但是我正在搜索的“myfile.txt”和为xcopy设置的目标呢?