脚本从驱动器号中删除冒号

Script is dropping colon from drive letter

我正在尝试编写一个脚本来识别是否连接了多个 USB 驱动器之一,以便创建一个可以在脚本中使用的变量,这样我就不必在每次复制时都更改变量这些闪存驱动器之一的脚本。

$USBlibrary = @("Test1","Test2")
$USBcurrent = (GWmi Win32_LogicalDisk | Where-Object {$_.VolumeName -in $USBlibrary} |  % {$_.DeviceID})

$mydrive = $($USBcurrent[0])

Write-Host "$mydrive"

在索引 $USBcurrent 变量时,如果连接了多个驱动器,它会正确输出为“D:”或“E:”,但是如果只连接一个驱动器(这将是常态),则系统会掉线来自变量的冒号。我的理解是系统试图将冒号读取为定义范围,但我一直无法找到防止这种情况发生的解决方案。

那是因为 $USBCurrent 是一个字符串,而不是一个数组。将 (GWmi ...) 更改为 @(GWmi ...) 以强制输出数组 - Mathias R. Jessen