我有以下的PowerShell 2.0的脚本:PowerShell脚本和subst命令
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)。
它正常工作对我来说,检查第一SUBST返回任何错误。如果它无法安装驱动器,那么ls将失败... – 2013-02-26 16:00:40
@Adriano我没有得到任何错误。你可以在一个shell中多次运行它吗? – guini 2013-02-26 16:26:36
是的......它可以正常工作。 – 2013-02-26 16:41:18