我实际上正在编写一个节点脚本来检测是否插入了特定的USB,然后将其内容复制到桌面。这主要适用于Windows。要做到这一点,我手动检查是否E:\'路径存在,' F:\'等等......
但我需要确定设备是我需要的设备。他们有特定的名字,例如:
MTR12345或MTR23RR5或MTRTGX23。
我需要知道这些名字。我搜索了不同的nodejs和powershell解决方案,但没有一个符合我的需求。
我需要获取在E:\上安装的设备的名称。我对PowerShell和NodeJS也很陌生。
我该怎么做?谢谢你的帮助。
答案 0 :(得分:2)
听起来你只是在寻找卷名。 WMI类Win32_logicaldisk将返回已安装设备的类。假设它当然是人口稠密的。这是最简单的形式:
Get-WmiObject Win32_logicaldisk | Where-Object{$_.VolumeName -eq "MyUSBKey"}
您有一些特定的示例和正在尝试使用的正则表达式查询来缩小结果范围。因此,如果您想匹配正则表达式查询:
Get-WmiObject Win32_logicaldisk |
Where-Object{Where-Object{$_.VolumeName -match "MTR[A-Za-z0-9]+"}} |
Select -Expand DeviceID
如果你愿意,你甚至可以简化它。只需匹配以“MTR”开头的卷。不像另一个那么完美,但同样简单。
Get-WmiObject Win32_logicaldisk |
Where-Object{Where-Object{$_.VolumeName -match "^MTR"}} |
Select -Expand DeviceID