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