自动检测USB并将sam文件复制到USB

问题描述 投票:0回答:1
wmic logicaldisk where drivetype=2 get deviceid>usb.txt

现在如何使用该deviceid D:以便我们更改目录并将sam文件复制到它?

......还是有另一种简单的方法可以做到这一点!?

batch-file usb-drive
1个回答
0
投票

我建议你试试这样的东西,不能保证只找到便携式USB设备,但接近DriveType=2更接近:

@Echo Off
For /F Delims^=^= %%A In ('Set _ 2^>Nul')Do Set "%%A="
For /F Delims^= %%A In ('WMIC DiskDrive Where "InterfaceType='USB'" Assoc^
 /AssocClass:Win32_DiskDriveToDiskPartition 2^>Nul^|Find /I "_DiskPartition."'
)Do For /F Tokens^=2Delims^=^" %%B In ("%%A"
)Do For /F Tokens^=4Delims^=^" %%C In ('WMIC Path Win32_LogicalDiskToPartition^
 ^|FindStr/C:"%%B" 2^>Nul')Do (For /F "Skip=1 Delims=" %%D In ('WMIC^
 LogicalDisk Where "DeviceID='%%C'" Get DeviceID^,VolumeName')Do Echo( %%D
    Call Set "_C=%%_C%%%%C")
If Not Defined _C Echo( You don't have a USB drive connected&&GoTo :EndIt
If "%_C:~,2%"=="%_C%" GoTo Picked
Echo( Enter the USB drive letter from the above [%_C::=%]:
For /F "Tokens=2Delims=?" %%A In ('Choice/C %_C::=%')Do Set "_L=%%A:"
:Picked
If Not Defined _L (Call:Tasks %_C%)Else Call:Tasks %_L%
:EndIt
>Nul Timeout 5
Exit/B
:Tasks
Copy /Y "FileName.sam" %1:\ >Nul 2>&1

这具有添加的“功能”,如果检测到多个驱动器,您将有机会在它们之间进行选择。

我已经创建了这个,因为你不需要触摸这个脚本中的任何东西,除了底部标签下的任务,其中%1是你检测到的驱动器号。在这种情况下,您可能希望更改最后一行的双引号字符串。

© www.soinside.com 2019 - 2024. All rights reserved.