我的脚本会计算 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