如何使用 PowerShell Exit 命令及相关命令

你是否曾想过,“如何在 PowerShell 中终止脚本或退出命令?”使用 PowerShell 退出命令会关闭 PowerShell 会话吗?如何返回自定义退出代码?好消息!在这个指南中,你将找到这些问题以及更多答案。

学习有关退出 PowerShell 脚本或会话的所有方法。

让我们准备好终止一些 PowerShell 会话和脚本!

先决条件

确保已在计算机上安装了 Windows PowerShell 或 PowerShell Core 以跟随操作。本文示例将使用 PowerShell 7.1.4

使用 PowerShell 退出命令终止控制台和脚本

让我们深入了解本教程,并首先介绍 PowerShell 中的 exit 关键字,它是 PowerShell 中的许多保留字之一。保留字是 PowerShell 中内置的一组字符,执行某些操作。对于 exit 关键字,操作是使 PowerShell 退出 PowerShell 会话。

让我们练习一下!打开 PowerShell 控制台会话,键入 exit,然后按 Enter 键。PowerShell 控制台将立即关闭。

这个关键词还可以退出脚本,而不是退出控制台会话。在脚本中包含exit关键词和exit只终止脚本,而不是从运行脚本的控制台会话中退出。

将下面的代码复制粘贴到记事本中,并将脚本保存为test.ps1C:\Temp目录。通过运行命令.\text.ps1运行PowerShell脚本文件,如下面的截图所示。请注意,PowerShell在关闭会话时,终止脚本并将控制返回到当前PowerShell会话的提示符,而不是关闭会话。

# test.ps1
Write-Host "Quick! Read this before the PowerShell session closes!!"
Start-Sleep -Seconds 2
Exit
The exit keyword stopped the script execution, but the console is still running

接收和提供退出代码的反馈

exit命令在需要脚本或函数运行一些代码并退出的情况下很有帮助。但是,您无法得知脚本是否成功运行。

当PowerShell运行脚本中的最后一个命令时,它将最后一个命令的退出代码存储在$LASTEXITCODE变量中。

有两个默认的退出代码:

PowerShell不限制您使用01作为退出代码。PowerShell允许您返回自定义退出代码,只要它们是整数

退出代码的值范围取决于平台。在Windows上,允许任何32位有符号整数。在Unix上,只允许使用正的8位整数。

要退出PowerShell并使用自定义退出代码,您可以将退出代码作为exit关键字的参数提供。

将以下代码复制并粘贴到现有的test.ps1文件中,并使用命令.\Test.ps1运行脚本。检查$LASTEXITCODE变量的内容。通过指定退出代码为55,PowerShell退出并显示如下结果。

Function foo {
    Write-Output "This foo function will be shown"
    Exit 55 # < -- 使用自定义退出代码
}

foo
Returning a custom exit code

使用Break退出循环

在某些情况下,使用exit行为是不可接受的,比如退出一个函数。让我们看看break关键字是如何帮助的。

break关键字使PowerShell停止循环。在break之后,代码将在下一次迭代中继续执行。

循环中的断点在 PowerShell 中非常有用,比如 foreachwhiledo-whileswitch 语句,因为你可以控制代码在何处在代码完成之前停止。

让我们练习如何跳出循环。下面你可以看到一个带有 for 循环的代码片段。如果没有 break,for 循环会迭代十次。当迭代器等于八时,break 关键字将被触发。一旦 PowerShell 发现 break 关键字,它就会停止循环。

for($i=1; $i -le 10; $i++) {
	if($i -eq 8) { break }
	$i
}

你可以看到下面的代码,当 i 等于 8 时,PowerShell 就会停止循环。代码永远不会到达 9。你已成功跳出了 for 循环。

Breaking a for loop

使用 Return 重定向代码执行

return关键字与先前的关键字略有不同,因为它不是退出或中断命令。此关键字重定向代码执行并将执行返回到其调用处,同时允许你返回值。而且,不仅仅是整数,就像exit一样。你可以返回任何类型!这些行为使return关键字比先前的关键字更加多才多艺。

让我们通过一个示例来看它的实际应用:构建一个配对单词的函数。将下面的代码复制到你的PowerShell会话中:

function WordPairing ($a,$b) {

	return "$a" + "$b" # <-- 将两个单词组合成一个单词

}

$output = WordPairing taco cat

Write-Output "$output is a strange pairing of words."

注意从函数输出的值在输出中的情况。

Redirecting code execution with the return keyword

你将由WordPairing函数生成的$output重定向回调用$output的地方。

结论

在本指南中,你学会了终止PowerShell会话和脚本的不同方法。每种方法都依赖于特定的关键字。每个关键字都有特定的用例。当适当使用时,这些关键字中的每一个都能极大地控制脚本的行为。

现在你知道了不同的退出PowerShell会话的方法,你打算如何运用这些新知识来改进你的脚本呢?

Source:
https://adamtheautomator.com/powershell-exit/