Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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 从命令中获取USB驱动器号并将其用作选择变量_Batch File_Cmd_Usb_Choice_Drive Letter - Fatal编程技术网

Batch file 从命令中获取USB驱动器号并将其用作选择变量

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

我正在尝试创建一个批处理文件,用于将文件夹备份到usb驱动器。在某一点上,我希望批量显示连接到计算机的所有可用USB驱动器的列表,然后要求用户选择其中一个驱动器的驱动器号以继续

至于列表:我想在每个usb驱动器的一行中组合这两个输出

wmic logicaldisk,其中DriveType^=2获取设备ID

wmic diskdrive,其中mediatype^=“removable media”获取标题,序列号


至于choice命令:如何使用驱动器号作为用户选择的选项?

以下代码应:

  • 确定您的USB驱动器号
  • 如果没有找到,请通知您,然后关闭
  • 如果只找到一个,则自动选择它
  • 如果找到几个,请提供一个选择
  • @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
    一起使用,以便开始尝试为每个结果确定相应的驱动器号。非常感谢您的回答!!真的帮了我很多!!