如何使用powershell通过Map类型名称来分配可用的驱动器号?

u3r8eeie  于 2022-12-04  发布在  Shell
关注(0)|答案(1)|浏览(372)

我想指定一个驱动器号给一个特定的卷。但我不知道哪个驱动器号是可用的,所以我用循环来检查可用的驱动器号。我试过这种方法,但它总是返回到输入分区号。

$DriveLetterList = 90..65 | ForEach-Object {[char]$_ }
foreach($list in $DriveLetterList){
   $Get = Get-Partition | Where-Object{$_.Type -eq "Recovery"} | Set-Partition $list
   if ($null -eq $Get) {
         Start-Sleep -s 1
         $n = 0
         while ($null -ne $Get) {
            $n++
            Break
      }
   }
}

任何人都可以帮助我真的很感激。非常感谢

57hvy0tb

57hvy0tb1#

看起来你可以简化很多,你只需要先得到所有的分区,然后过滤掉字符数组中没有的字符,然后得到Recovery分区,并给它设置一个新的字符.
我使用| Select-Object -First 1来选择第一个可用字符,但是,您可以将其更改为| Get-Random来选择随机可用字符。

$partitions = Get-Partition
$newLetter  = [char[]] ([char]'A'..[char]'Z') |
    Where-Object { $_ -notin $partitions.DriveLetter } |
    Select-Object -First 1

$partitions | Where-Object { $_.Type -eq "Recovery" } |
    Set-Partition -NewDriveLetter $newLetter

相关问题