批处理文件中递增的字母



我想创建一个For循环来查看程序是否在闪存驱动器上,如果是,则复制文本文件。因为每台电脑的驱动器号都不一样,我想让它查看每个驱动器号。

if exist "D:Test.exe" (
copy "%FileName%.txt" "D:" >nul
)
if exist "E:Test.exe" (
copy "%FileName%.txt" "E:" >nul
)
if exist "F:Test.exe" (
copy "%FileName%.txt" "F:" >nul
)
if exist "G:Test.exe" (
copy "%FileName%.txt" "G:" >nul
)
Rem ...Continues possibly until drive Z or once it finds the file

是否有一种方法来创建一个For循环来增加驱动器号,所以我不必每次都做一个If语句?

这是一个社区wiki,每个用户的评论都包含了所有方法。

Squashman

@echo off
FOR %%G IN (A B C D etc..Z) DO IF EXIST "%%G:test.exe" copy

那么,用Aacini的ascii格式的出口码6590的非常直观的方法。

@echo off
setlocal enabledelayedexpansion
for /L %%i in (65,1,90) do cmd /C exit %%i & if exist "!=ExitCodeAscii!:test.exe" copy...

然后my建议使用wmic查找设备上所有可用的实际驱动器号:

@echo off
for /f "tokens=2*delims==" %%i in ('wmic logicaldisk get caption /value') do for /f "delims=" %%d in ("%%i") do if exist "%%dtest.exe" copy ...

最新更新