1

我实际上正在编写一个节点脚本来检测是否插入了特定的 USB,然后将其内容复制到桌面。这主要适用于 Windows。为此,我手动检查 'E:\' 路径是否存在、'F:\' 等...

但我需要确保这些设备是我需要的。他们有特定的名字,例如:

MTR12345 或 MTR23RR5 或 MTRTGX23。

我需要知道这些名字。我搜索了不同的 nodejs 和 powershell 解决方案,但没有一个适合我的需求。

我需要获取安装在 E:\ 的设备的名称。我对 PowerShell 和 NodeJS 也完全陌生。

我怎样才能做到这一点 ?谢谢你的帮助。

4

1 回答 1

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
于 2015-11-25T19:59:19.920 回答