batch-file - 自动检测 USB 并将 sam 文件复制到 USB
问题描述
wmic logicaldisk where drivetype=2 get deviceid>usb.txt
现在如何使用该 deviceidD:
以便我们更改目录并将 sam 文件复制到其中?
…或者还有其他简单的方法吗!?
解决方案
我建议您尝试这样的事情,不能保证只能找到便携式 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
您检测到的驱动器号在哪里。在这种情况下,您可能想要更改最后一行的双引号字符串。
推荐阅读
- laravel - Laravel-dompdf 使用后无法在 Pdf 文件中显示日语
- r - 在箱线图中分离子组
- c++ - 函数不将右值引用作为参数?
- sql-server - 在 column1 的值之间排序 column1 和 order column2
- python - 使用多个查询的 Django 过滤
- r - 对数据集进行子集化不起作用,因为它每次都给出相同的数据集
- flutter - 未处理的异常:异常:创建注册失败
- postgresql - PostgreSQL - 挂载 csv / 其他文件 - 类型卷/表空间
- python - 如何在 python 中使用 websockets 流式传输信息?
- javascript - 用 jest 在其他文件中声明的测试函数