给出一个简单的方法获取未使用的盘符:
PS > ls function:[A-Z]: | where { ! (test-path $_.name) } | select -ExpandProperty name A: B: F: H: K: L: M: ……
上面的脚本利用到了PowerShell中function中虚拟驱动器,更多关于虚拟驱动器可以参见驱动器变量。
假如要随机获取一个未使用盘符供使用。可以在管道后再加一条命令Get-Random。
@李反馈:
你好,这个方法不能检测cd占用的盘符,这种情况如何处理?
因此2016年10月11日更新如下:
$driveName = Get-PSDrive -PSProvider FileSystem | select -ExpandProperty Name 65..90 | Where-Object{ $driveName -notcontains [char]$_ }| ForEach-Object { [char]$_ }
本文链接: https://www.pstips.net/finding-unused-drive-letter.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
博主大牛!受教!
68..90 |%{ [char[]]$_} | ? { (Get-PSDrive $_ -ErrorAction ‘SilentlyContinue’) -eq $null }
哈,这个思路也很好啊。
http://www.powershellmagazine.com/2012/01/12/find-an-unused-drive-letter/这里有大全,摘录1个:%5Bchar%5D(1+“$(gdr ?)”[-1]) :最短的一个,但有bug,如果盘符有Z,则不行
gdr这个别名有点生僻啊。
你好,这个方法不能检测cd占用的盘符,这种情况如何处理?
已在原文上增加了改良版本。