我有以下的PowerShell 2.0脚本:
function getFreeDrive
{
[char[]]$driveLetters = @([char]'E'..[char]'Z')
foreach ($d in $driveLetters) {
if(!(Test-Path -Path "$d`:" -IsValid)) {
return $d
}
}
}
$drive = getFreeDrive
subst "$drive`:" T:\temp
ls "$drive`:\" # just a dummy command
subst "$drive`:" /D
我希望这个脚本能够:
- 找到第一个未使用的驱动器号
- 用subst创建一个新的驱动器
- 在这个驱动器上执行操作
- 用subst删除驱动器
当我第一次运行脚本时,它可以正常工作。但如果我在同一个Shell中第二次运行该脚本,则会从ls命令中出现无法找到驱动器的错误。如果我打开一个新的Shell并运行该脚本,则再次可以正常运行。
我的脚本有什么问题?我该如何让它在同一个powershell实例中多次运行?
或者也许可以尝试其他替代方法来使用subst命令?我尝试使用powershell驱动器,但它不能与其他Windows程序(例如devenv.exe)一起使用。