重新启动 powershell 脚本

重新启动 powershell 脚本

我的脚本会计算 PC 上的音频文件数量,并检查输入的驱动器是否为系统驱动器。如果是,则会发送一条消息以返回或退出脚本。我创建了 :INI 和 :EXIT 段落,但脚本没有返回 :INI?

脚本:

clear-Host
:INI
cls
Write-Host "                                          Count Audio Files on PC" -ForegroundColor Yellow
$br
$local= Read-Host -Prompt " Enter your path Music folder. Eg. D:\*"
$location = "$local"

$locTst = $location.substring(0,2)

# Check if the drive c:
If ($locTst -eq "c:") {
    write-host -ForegroundColor Red " Drive $locTst does not allow access to external scripts!"
    $dirLoc= Read-Host -Prompt " Return?(Y/N)"
    if ($dirLoc -eq "y") { 
       :INI
    } else {  
       :EXIT
    }
}

commands to counting audio files...

:EXIT
exit

如何让脚本返回到:INI 以重新启动脚本,并且在:EXIT 中关闭 powershell 屏幕?

我尝试使用此链接中的命令,但它们在 Powershell ISE 中出现错误,我无法调试代码。
我如何允许输入 y/n

答案1

为了与您当前的 PowerShell 编码结构保持一致,请尝试进行以下轻微修改:

clear-Host
while ($true) {
    cls
    Write-Host "                                          Count Audio Files on PC" -ForegroundColor Yellow
    $br
    $local= Read-Host -Prompt " Enter your path Music folder. Eg. D:\*"
    $location = "$local"

    $locTst = $location.substring(0,2)

    # Check if the drive c:
    If ($locTst -eq "c:") {
         write-host -ForegroundColor Red " Drive $locTst does not allow access to external scripts!"
         $dirLoc= Read-Host -Prompt " Return?(Y/N)"
         if ($dirLoc -eq "y") { 
             continue
         } else {  
             break
         }
    }

    # commands to counting audio files...
    break
}

exit

这使用一个while循环将continue用户保持在您的 INI 部分内,只要他们对于驱动器 C:内容以“y”响应;如果不是,则会break退出循环(和)。exit

相关内容