当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell 退出 | PowerShell 中的 Exit 函数如何工作?

作者:精品下载站 日期:2024-12-14 04:51:22 浏览:16 分类:玩电脑

PowerShell 退出 | PowerShell 中的 Exit 函数如何工作?


[玩转系统] PowerShell 退出 | PowerShell 中的 Exit 函数如何工作?

PowerShell 退出的定义

PowerShell 退出函数或 cmdlet 是脚本或函数终止符。在 PowerShell 中使用 Exit 函数并不总是终止控制台,这取决于命令和脚本中使用的范围,因为同一命令可以终止控制台,同一命令可以终止该函数,或者脚本在不同的范围中使用Exit cmdlet 对于退出远程 PowerShell 会话也很有用。

语法

很少有 cmdlet 用作 PowerShell 的退出功能,如下所示。

  • 出口
  • 休息
  • 返回
  • 退出-PSSession

PowerShell 中的 Exit 函数如何工作?

PowerShell 中退出函数的工作原理如下:

1.退出关键字

PowerShell 退出关键字应谨慎使用,因为它可以终止函数、控制台甚至编辑器。如果在函数和主脚本中使用 Exit 关键字,它将关闭所有内容,并且如果在使用 Exit 关键字之前未存储,您可能无法在控制台中看到输出。

Function ExitTest{
Write-Output "This is written on console but it terminates abruptly"
}
ExitTest  #Calling function
Exit

您看不到上面的输出,因为一旦您运行该命令,它就会终止脚本。您可以使用睡眠命令更多秒(10 或更长)或暂停几秒钟以查看输出。

当 Exit 关键字在函数内部使用并保存在脚本中时,一旦从控制台执行脚本,它就会终止函数和脚本,但不会关闭控制台,如下例所示。

Function ExitTest{
Write-Output "This will be displayed"
Exit
}
ExitTest  #Calling function

写入输出“这不会显示,但控制台不会关闭”

输出:

[玩转系统] PowerShell 退出 | PowerShell 中的 Exit 函数如何工作?

2.Break关键字

Break 关键字在循环(For、foreach、while、do-while 等)中使用,用于退出当前控制循环。此 Break 语句也可以与 Switch 语句一起使用。

当break语句用于单个循环时,执行Break语句时会退出整个循环。

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

上例中,当变量$i的值变为5时,执行Break语句,循环主For循环终止。输出如下所示。

输出:

[玩转系统] PowerShell 退出 | PowerShell 中的 Exit 函数如何工作?

让我们以嵌套循环为例。在下面的例子中,当$i变量的值变成2时,break语句被执行。

for($i=1;$i -lt 5;$i++){
for($j=1; $j -lt 3; $j++){
if($i -eq 2){break}
Write-Output "`ni = $i, j=$j"
}
}

输出:

[玩转系统] PowerShell 退出 | PowerShell 中的 Exit 函数如何工作?

在上面的示例中,当执行内部循环($j 循环)并且它有一个 break 语句时,它仅中断当前控制循环,如输出所示,当 $i 变量值变为 2,它打破了 $j 循环。

如果我们将break语句放在外面,它会打破两个循环,如下所示。

for($i=1; $i -lt 5 ;$i++) {
if($i -eq 2) { break }
for($j=1; $j -lt 3; $j++){
Write-Output "`ni = $i, j=$j"
}
}

输出:

[玩转系统] PowerShell 退出 | PowerShell 中的 Exit 函数如何工作?

3.返回关键字

return 语句不会终止循环或脚本,但它会重定向并返回到调用它的位置。当从控制台调用 return 语句时,它不会返回到另一个点,而只是打印该值。

return "Hello world"

输出:

[玩转系统] PowerShell 退出 | PowerShell 中的 Exit 函数如何工作?

当从脚本调用它时,它会保存调用它的原始点的状态并再次返回到该点。

function CheckService($ser) {
if( Get-Service $ser -EA Ignore){ return $true}
else {return $false }
}
If( CheckService TestService ) {
Write-Output "Service Exist"
}
else { Write-Output "Service doesn't exist" }

输出:

[玩转系统] PowerShell 退出 | PowerShell 中的 Exit 函数如何工作?

在上面的示例中,如果服务可用,名为 CheckService 的函数将返回 true,否则返回 false。

PowerShell 退出示例

下面给出示例:

例子#1

通过睡眠命令使用退出控制台

在此示例中,我们将使用 Exit 命令和 Sleep 函数,以便脚本在指定的几秒后终止。

代码:

$i = 0
While($true){
$i
if($i -eq 10){
Write-Output "Console is terminating in 3 seconds"
sleep 3
Exit
}
$i++
}

这里,在无限循环中,如果$i变量的值达到10,则在3秒后自动关闭控制台。

例子#2

使用 Break 语句退出 While 循环。

此示例检查服务器 LabMachine2k16 在重新启动后是否在线,并不断测试连接,直到服务器启动,一旦服务器启动,它就会使用break命令退出循环。

代码:

$Computer = "LabMachine2k16"
while($true){
if( Test-Connection -ComputerName $Computer -Count 2 -Quiet -EA Ignore  ){
Write-Output "Server is online"
Break
}
else{
Write-Output "Server is not online yet"
}
}

输出:

[玩转系统] PowerShell 退出 | PowerShell 中的 Exit 函数如何工作?

例子#3

使用 Break 语句退出 Switch 块

我们也可以将 Break 命令与 Switch 块一起使用。例如,

代码:

$color = Read-Host "Enter Color name "
switch($color){
"Red"{
Write-Output "Red color selected"
Break
}
"Yellow"{
Write-Output "Yellow color selected"
Break
}
Default{
Write-Output "No matching color selected"
Break
}
}

输出:

[玩转系统] PowerShell 退出 | PowerShell 中的 Exit 函数如何工作?

输入颜色名称后,将执行 switch 块并以 Break 语句终止。

例子#4

使用 Return 语句将值返回给调用。

在此示例中,函数中将两个值相乘,并将输出返回到主调用。

代码:

Function Multiplication($a,$b){
return $a*$b
}
$out = Multiplication 5 10
Write-Output "Multiplication: $out"

输出:

[玩转系统] PowerShell 退出 | PowerShell 中的 Exit 函数如何工作?

例子#5

使用 Exit-Ps Session 命令退出远程会话

Exit-PSSession 用于终止远程连接会话。但是,这不能在 PowerShell 脚本内部使用,它是一种交互式方法。下面的命令是在PS控制台上一一执行的。

代码:

Enter-PSSession LabMachine2k16  #Enters into PS Remote Session
Write-Output "My HostName is $($env:COMPUTERNAME)"
Exit-PSSession

输出:

[玩转系统] PowerShell 退出 | PowerShell 中的 Exit 函数如何工作?

结论

有多种 Exit 命令可用于退出控制台、终止循环或返回到控制台的原始点,使用哪个语句取决于您希望脚本生成输出或终止脚本的方式。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯