FOR %% a in(A B C ...)语句拉出错误

时间:2015-01-27 10:00:54

标签: loops batch-file

我在循环语句中使用for %% a;

for %%a in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
IF EXIST %%a:\file.id SET USBDRV=%%a:&& GOTO xcopypart

然后继续执行xcopy执行。问题是,如果设备/计算机说,SD卡插槽等,并且设备在计算机下显示为灰色,则会要求用户将磁盘插入可移动磁盘。

这是有问题的,因为计算机配置不同 - 有些有SD卡插槽,有些没有 - 并且因为它是应用程序的一部分我不能让用户经常面对这个错误消息,唯一的选择是他们禁用现有硬件使其正常工作。

是否有我可以使用的开关或覆盖功能会跳过“空”的磁盘?

为你的时间欢呼

-Julian

1 个答案:

答案 0 :(得分:1)

set "USBDRV="
for %%a in (
    A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
) do vol %%a: >nul 2>&1 && ( 
    if exist "%%a:\file.id" set "USBDRV=%%a:" & goto xcopypart 
)

首先使用vol命令测试驱动器是否准备就绪。如果没有errorlevel,则测试驱动器是否存在文件。