Batch file 从命令中获取USB驱动器号并将其用作选择变量
我正在尝试创建一个批处理文件,用于将文件夹备份到usb驱动器。在某一点上,我希望批量显示连接到计算机的所有可用USB驱动器的列表,然后要求用户选择其中一个驱动器的驱动器号以继续 至于列表:我想在每个usb驱动器的一行中组合这两个输出 wmic logicaldisk,其中DriveType^=2获取设备ID wmic diskdrive,其中mediatype^=“removable media”获取标题,序列号Batch file 从命令中获取USB驱动器号并将其用作选择变量,batch-file,cmd,usb,choice,drive-letter,Batch File,Cmd,Usb,Choice,Drive Letter,我正在尝试创建一个批处理文件,用于将文件夹备份到usb驱动器。在某一点上,我希望批量显示连接到计算机的所有可用USB驱动器的列表,然后要求用户选择其中一个驱动器的驱动器号以继续 至于列表:我想在每个usb驱动器的一行中组合这两个输出 wmic logicaldisk,其中DriveType^=2获取设备ID wmic diskdrive,其中mediatype^=“removable media”获取标题,序列号 至于choice命令:如何使用驱动器号作为用户选择的选项?以下代码应: 确定您的U
至于choice命令:如何使用驱动器号作为用户选择的选项?以下代码应:
@Echo关闭
SetLocal EnableExtensions EnableDelayedExpansion
设置“USBDrv=”
对于('%SystemRoot%\System32\wbem\WMIC.exe)中的/F令牌^=2^Delims^=^“%%%G
DiskDrive,其中“InterfaceType='USB'”关联:列表
/关联类别:Win32_DiskDriveToDiskPartition 2^>NUL
^|%SystemRoot%\System32\findstr.exe“^\uu\R”
)Do For/F令牌^=4^Delims^=^“%%%H In(“%SystemRoot%\System32\wbem\WMIC.exe
路径Win32_LogicalDiskToPartition^ |%SystemRoot%\System32\findstr.exe/C:“%G”
2^>Nul')是否设置“USBDrv=!USBDrv!%%H”
如果未定义USBDrv Echo,则未连接USB驱动器。&&GoTo:EndIt
如果“%USBDrv:~2%”==“”(转到选定位置),则返回哪个USB驱动器%USBDrv::=%?
对于(“%SystemRoot%\System32\choice.exe)中的/F“Tokens=2 Delims=?”%%G
/C%USBDrv::=%2^>numl')是否设置“USBDrv=%G:”
:已选定
调用:任务%USBDrv%
:EndIt
%SystemRoot%\System32\timeout.exe/T 5 1>NUL
后藤:EOF
:任务
Rem在此处放置命令[%1将是USB驱动器,例如e:]。
您需要做的就是将备份命令等放在底部。别名
LogicalDisk
和“DriveType='2'
或别名DiskDrive
和“MediaType='Removable Media'
都不会选择USB驱动器。不仅所有USB驱动器都未注册为可移动,而且所有可移动驱动器都不是USB。我建议您将“InterfaceType='USB'
与DiskDrive
一起使用,以便开始尝试为每个结果确定相应的驱动器号。非常感谢您的回答!!真的帮了我很多!!