Powershell支持“EXIT”關(guān)鍵字,它的范圍是基于作用域的,它可能比你想象的工作方式要不同。
讓我們來測試下這個(gè)函數(shù):
復(fù)制代碼 代碼如下:
function test
{
'A'
exit
'B'
}
當(dāng)你保存并調(diào)用腳本,你將得到:
復(fù)制代碼 代碼如下:
PS> C:\Users\Tobias\Documents\PowerShell\test12343.ps1
A
這時(shí)”exit”過早的結(jié)束了這個(gè)函數(shù)。可是當(dāng)你沒有保存當(dāng)前腳本或當(dāng)你調(diào)用的是一個(gè)交互函數(shù),你整個(gè)Powershell宿主將關(guān)閉。
“Exit”結(jié)束當(dāng)前調(diào)用的腳本,不僅僅是函數(shù)。倘若你把它像下面那樣保存到腳本,你也許會(huì)有意外的發(fā)現(xiàn):
復(fù)制代碼 代碼如下:
function test
{
'A'
exit
'B'
}
'Start'
test
'Stop'
現(xiàn)在結(jié)果像這樣:
復(fù)制代碼 代碼如下:
PS> C:\Users\Tobias\Documents\PowerShell\test12343.ps1
Start
A
請(qǐng)注意,代碼“Stop”沒有執(zhí)行?!癊xit”結(jié)束了自身函數(shù)并且停止了作用域后續(xù)的執(zhí)行。如果調(diào)用交互函數(shù)為什么不會(huì)關(guān)閉Powershell呢?(這是因?yàn)椋阏{(diào)用的作用域宿主是它自己)。
所以該怎么使用“exit”?你可以在腳本工作時(shí)設(shè)置一個(gè)錯(cuò)誤等級(jí)數(shù)。這個(gè)等級(jí)數(shù)能從調(diào)用中獲得。所以如果你創(chuàng)建一個(gè)Powershell計(jì)劃任務(wù),或通過Powershell.exe執(zhí)行批處理文件,這時(shí)你在“Exit”后指定的不同數(shù)字將變成你腳本外的退出代碼就如同你批處理中的%ERRORLEVEL%一樣。
您可能感興趣的文章:- 惡意網(wǎng)站4255.biz的完美解決辦法
- 使用UART與PC通信實(shí)現(xiàn)msp430g2553單片機(jī)超聲波測距示例
- Powershell的break、continue和return簡單總結(jié)
- PowerShell中使用return語句退出函數(shù)例子
- PHP連接MSSQL時(shí)nvarchar字段長度被截?cái)酁?55的解決方法
- exit(-1)或者return(-1)shell得到的退出碼為什么是255