簡體   English   中英

Powershell 跳轉到另一個腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM