繁体   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