[英]Powershell jump to another script
DOS 和類似 DOS 的命令文件鮮為人知的特性之一是,以批處理文件的名稱(路徑)開頭的行將控制權轉移到新文件,而沒有返回(與“調用”命令相反執行完成后返回)。
我也可以用 Powershell 做到這一點嗎? 這有點像“轉到 otherscript.ps1”,但我知道 Powershell 中沒有轉到。
問的原因是我想從subversion更新當前正在執行的腳本,如果有變化,然后從頂部執行更新后的文件。
您可以使用點源來運行外部腳本 - 例如:
主.ps1
. ".\sub.ps1"
子.ps1
write-host "aaa"
它更像是一個“包含”而不是一個 goto,因為它在當前腳本的上下文中運行並且可以訪問/修改主腳本中的變量:
主.ps1
. ".\sub.ps1"
write-host $x
# ^ outputs "bbb"
子.ps1
$x = "bbb"
write-host "aaa"
如果您使用調用運算符,您可以阻止點源腳本訪問主腳本的上下文 - 例如
主.ps1
& { . ".\sub.ps1" }
write-host $x
# ^ outputs a blank line
子.ps1
$x = "bbb"
write-host "aaa"
如果您在點源腳本之后放置exit
,它將結束主腳本並且有點像 goto ......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.