了解Powershell中的Exit函数

Powershell支持“EXIT”关键字,它的范围是基于作用域的,它可能比你想象的工作方式要不同。

让我们来测试下这个函数:

代码如下:

function test
{
  'A'
  exit
  'B'
}

当你保存并调用脚本,你将得到:

代码如下:

PS> C:\Users\Tobias\Documents\PowerShell\test12343.ps1
A

这时”exit”过早的结束了这个函数。可是当你没有保存当前脚本或当你调用的是一个交互函数,你整个Powershell宿主将关闭。

“Exit”结束当前调用的脚本,不仅仅是函数。倘若你把它像下面那样保存到脚本,你也许会有意外的发现:

代码如下:

function test
{
  'A'
  exit
  'B'
}
 
'Start'
test
'Stop'

现在结果像这样:

代码如下:

PS<> C:\Users\Tobias\Documents\PowerShell\test12343.ps1
Start
A

请注意,代码“Stop”没有执行。“Exit”结束了自身函数并且停止了作用域后续的执行。如果调用交互函数为什么不会关闭Powershell呢?(这是因为,你调用的作用域宿主是它自己)。

所以该怎么使用“exit”?你可以在脚本工作时设置一个错误等级数。这个等级数能从调用中获得。所以如果你创建一个Powershell计划任务,或通过Powershell.exe执行批处理文件,这时你在“Exit”后指定的不同数字将变成你脚本外的退出代码就如同你批处理中的%ERRORLEVEL%一样。

(0)

相关推荐

  • 恶意网站4255.biz的完美解决办法

    问题提出和症状:最近上网碰到这个网站(4255.biz),无意中了它的招,之后每当访问其他网站的时候,都会从4255.biz 上下载数据,并且其他网站都不能下载完整,不能正常访问,郁闷了好久,尤其是带框架的网站干脆就出不来. (该图为诺顿报毒和处理结果)分析:(此分析内容为C.I.S.R.T.博客小陌摘录) 打开该网页后,就可以看到三个恶意网址: 001.htm用到的是MS07-017漏洞的网马:002.htm用到的是MS06-014漏洞的网马:003.htm会下载ccc.html(其实是个ch

  • exit(-1)或者return(-1)shell得到的退出码为什么是255

    下面我写了一个hello world程序,一起看看吧: // filename: main.c #include <stdio.h> int main(void) { printf("hello wolrd!\n"); return(-); } 编译执行:gcc main.c && ./a.out 现在我们看看在当前shell中返回上一个执行过程的返回值是多少,是 "-1" 吗? inuyasha@inuyasha-Aspire-4741

  • PowerShell中使用return语句退出函数例子

    本文介绍在自定义PowerShell函数时,可以使用return语句来退出函数,同时return语句也可以返回值给函数的调用者. 使用return语句来直接退出函数.看一个退出函数的例子: 复制代码 代码如下: function Get-NamedProcess {     param     ($name=$null)     if ($name -eq $null)     {         Write-Host -ForegroundColor Red 'Specify a name!'

  • Powershell的break、continue和return简单总结

    在Powershell中有两个特殊的关键字,就是你使用在循环中的break和continue. 看下这个"continue",循环中的继续就是跳过其中的剩余代码.当你使用一个"break",这个循环将提前结束但是会返回当前所有结果. 除此之外,关键字"return",它将马上退出当前的作用域.所以当你在函数中执行"return",这时函数将会结束,同时当你在脚本中执行"return",这时脚本也将结束.

  • PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法

    本文实例讲述了PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法.分享给大家供大家参考.具体分析如下: PHP 连接 MSSQL 的新手经常遇到这个问题:数据库里面的 nvarchar 字段中数据一切正常,但是用 PHP 查询出来却发现长度只有 255,我们都知道,在 MySQL 里面 varchar 的长度只有 255,但是 MSSQL 却不是,不会是 PHP 将 nvarchar 按照 MySQL 的 varchar 处理了吧. 本文给出了解决方法: 复制代码 代码如下:

  • 使用UART与PC通信实现msp430g2553单片机超声波测距示例

    适用于msp430g2553单片机  使用到了hc-sr04超声测距模块,使用UART与PC通信. 复制代码 代码如下: #include <msp430.h>long current_time;//最近一次测得时间/*MyPro*/#define LED_1 BIT0                      #define SW_2 BIT3                       #define TA1_1 BIT2                      //TA0.1 HC-S

  • 了解Powershell中的Exit函数

    Powershell支持"EXIT"关键字,它的范围是基于作用域的,它可能比你想象的工作方式要不同. 让我们来测试下这个函数: 复制代码 代码如下: function test {   'A'   exit   'B' } 当你保存并调用脚本,你将得到: 复制代码 代码如下: PS> C:\Users\Tobias\Documents\PowerShell\test12343.ps1 A 这时"exit"过早的结束了这个函数.可是当你没有保存当前脚本或当你调用

  • Powershell小技巧之使用Jint引擎在PowerShell中执行Javascript函数

    这里演示如何利用PowerShell将一段Javascript函数字符串交给Jint引擎去执行. 执行Javascript函数 .Net版的Javascript解释器 可以从Git上获取Jint的代码,也可以从nuget上下载Jint的程序集. Jint是一个面向.Net的Javascript解释器.Jint不会把Javascript编译成.Net字节码,所以它非常适用于脚本小且运行起来速度快的工程,或者运行在不同平台上的脚本. PowerShell调用 拿到Dll根据-Path参数直接使用Ad

  • PowerShell中的函数重载示例

    在PowerShell中,我们可以使用Function关键字来定义一个函数,比如: Function Get-Data { Param ( [int] $data = -1 ) return $data; } 这个名为Get-Data的函数接收一个int类型的参数$data,直接将其返回.那么,我同时还需要一个接收string类型的Get-Data函数怎么办?方法比较奇怪,至少和传统的C++之类的语言不同. 在PowerShell中定义重载函数,需要指定参数所属的Parameter Set,如下

  • PowerShell中简单的自定义函数和调用函数例子

    在PowerShell中是否有函数?PowerShell是否可以自定义函数?PowerShell中如何自定义函数? 在PowerShell中,我们可以使用函数(function)来简化编程开发.在PowerShell中使用function这个关键词来标识一个函数.一个自定义的函数,由function关键词开始,然后用一对大括号来包括起整个函数体的内容. 我们先来看一下简单的PowerShell函数: 复制代码 代码如下: function Test-Function {     Write-Ho

  • PowerShell中prompt函数的妙用

    本文介绍PowerShell中的Prompt函数,并且通过Prompt函数来自定义PowerShell命令行界面的提示符. 在设计prompt函数之前,小编想把PowerShell命令行提示符改成zhanghong>,不知道可不可以.找来找去,找到了prompt这个函数.先来看看如下的一个函数定义: 复制代码 代码如下: function prompt{     "PS zhanghong> " } 这是一个非常普通的函数,没有什么实质性的不同.而且函数体里面的代码更是简单

  • 如何调用C标准库的exit函数详解

    编译大于运算符 原定的计划中这一篇应当是要讲如何编译if表达式的,但是我发现没什么东西可以作为if的test-form的部分的表达式,所以觉得,要不还是先实现一下比较两个数字这样子的功能吧.说干就干,我决定用大于运算符来作为例子--大于运算符就是指>啦.所以,我的目标是要编译下面这样的代码 (> 1 2) 并且比较之后的结果要放在EAX寄存器中.鉴于现在这门语言还非常地简陋,没有布尔类型这样子的东西,所以在此仿照C语言的处置方式,以数值0表示逻辑假,其它的值表示逻辑真.所以上面的表达式在编译成

  • PowerShell中查找字符串位置的IndexOf函数使用实例

    本文介绍在PowerShell中使用字符串的IndexOf函数,来查询一个字符串中是否存在另一个字符串,如果存在那么它在什么位置. IndexOf函数是String对象的静态方法,用于查找一个字符串在另一个字符串中的位置.如果查寻字符串在被查询字符串中不存在,则返回值为-1.如果存在,则返回查寻字符串所处的位置,位置是从0开始的. 下面看看例子: 在"123"中不存在"13" 复制代码 代码如下: PS C:\Users\spaybow> "123&

  • Python中的getopt函数使用详解

    函数原型: getopt.getopt(args, shortopts, longopts=[]) 参数解释: args:args为需要解析的参数列表.一般使用sys.argv[1:],这样可以过滤掉第一个参数(ps:第一个参数是脚本的名称,它不应该作为参数进行解析) shortopts:简写参数列表 longopts:长参数列表 返回值: opts:分析出的(option, value)列表对. args:不属于格式信息的剩余命令行参数列表. 源码分析 在Android生成OTA的build系

  • Yii2中添加全局函数的方法分析

    本文实例讲述了Yii2中添加全局函数的方法.分享给大家供大家参考,具体如下: 方法一 这种方法就是直接在入口文件web/index.php里面写函数,示例代码如下: // something code -- // 全局函数 function pr($var) { $template = php_sapi_name() !== 'cli' ? '<pre>%s</pre>' : "\n%s\n"; printf($template, print_r($var, t

  • 解析php中die(),exit(),return的区别

    die()停止程序运行,输出内容exit是停止程序运行,不输出内容return是返回值die是遇到错误才停止exit是直接停止,并且不运行后续代码,exit()可以显示内容.return就是纯粹的返回值了,但是也不会运行后续代码exit(0):正常运行程序并退出程序:exit(1):非正常运行导致退出程序:return():返回函数,若在主函数中,则会退出函数并返回一值.详细说:  1. return返回函数值,是关键字:  exit 是一个函数.  2. return是语言级别的,它表示了调用

随机推荐