作为学习使用PowerShell的一部分,我一直在研究如何找到免费的驱动器号。这个SO question是一个很好的起点: 但是,如果PC上有DVD驱动器和/或虚拟驱动器,那么真正的管道
ls function:[d-z]: -n | where { !(test-path $_) }
将声称这些驱动器的字母是免费的(因为没有安装任何内容)。是否有一些简单的算法将这些驱动器从列表中取出 - 假设该命令必须在所有机器上运行,而不是使用明确的驱动器存在知识?
答案 0 :(得分:1)
WMI类Win32_CDROMDrive
已经知道存在的cd / dvd rom驱动器。使用我们可以排除那些生成驱动器列表的信息。
$cddrives = (Get-WmiObject Win32_CDROMDrive).Drive
ls function:[d-z]: -N | Where-Object {$cddrives -notcontains $_ -and !(test-path $_)}
仅供参考ls
= Get-ChildItem
和-N
是对参数-Name