gpt4 book ai didi

windows - powershell 脚本和 subst 命令

转载 作者:可可西里 更新时间:2023-11-01 13:54:48 29 4
gpt4 key购买 nike

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

最佳答案

另一种方法是使用 PSProviders 和更准确的 PSDrives(查看 get-help about_providers):

PS > New-PSDrive -Name "tr" -PSProvider filesystem -Root "c:\temp"

Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
tr 28,15 FileSystem C:\temp

PS > ls tr:*.c

Répertoire : C:\temp


Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 01/08/2012 05:28 994 test.c


PS > Remove-PSDrive -Name "tr"

问题是这些驱动器不能与 shell explorer.exe 一起使用。

关于windows - powershell 脚本和 subst 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15093347/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com