下面是一个可能的解决方案(尽管根据评论,重复使用相同的驱动器号会更简单,但这可能更快):
Function CleanUp-PSDrive {
Get-PSDrive -PSProvider FileSystem | Where { $_.Name -in (69..90 | ForEach-Object { [char]$_ })} | Remove-PSDrive
}
$Csv = Import-Csv "path"
$Csv.Name | ForEach-Object -Begin { $Letter = 69 } {
New-PSdrive -Root $_ -Name ([char]$Letter) -PSProvider FileSystem
#Do some stuff..
if ($Letter -lt 90)
{
$Letter++
}
else
{
CleanUp-PSDrive
$Letter = 69
}
} -End { CleanUp-PSDrive }
这将使用E-Z(69-90)的ASCII代码来创建带字母的驱动器,因为它在CSV中迭代,当我们到达字母90(Z)时,它将使用我声明调用的函数删除所有驱动器
CleanUp-PSDrive
然后将$Letter重新设置为69(E)。
我创建了
清理PSDrive
功能,因为我意识到您需要在对未知数量的剩余映射驱动器进行最终迭代后进行清理。函数通过使用
Get-PSDrive
. 然后我们使用
-End
块,共块
ForEach-Object
进行最终清理。
我使用
-Begin
的块
ForEach对象
宣布
$Letter
除了它能很好地连接到计数器的使用位置之外,没有其他原因。