我有以下 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)。