问题描述
|
是否可以编写自我修改的PowerShell脚本?
假设我有一个名为
foo.ps1
的脚本:
\"Write-Host `\"Goodbye world`\"\" | Set-Content \"foo.ps1\"
Write-Host \"Hello world\"
该脚本输出Hello world
。我可以使用什么技术来打印出Goodbye world
?
解决方法
对我来说,这是没有意义的,在修改脚本后,您需要重新加点资源以获取新的陈述。
该脚本将自身更改三次:
写主机“ Hello world”
\“写主机`\”再见世界`\“ \” |设置内容\“ foo.ps1 \”
。 。\\ foo.ps1
\“写主机`\”真的有用吗?`\“ \” |设置内容\“ foo.ps1 \”
。 。\\ foo.ps1
并打印:
你好,世界
世界再见
真的有用吗?
另一种可能性是编写一个脚本,该脚本接受脚本块作为输入参数。
,是的,但是我将有更好的方法来做您要完成的事情。
C:(...)WindowsPowerShell >.\\foo.ps1
Hello world
C:(...)WindowsPowerShell >.\\foo.ps1
Goodbye world
C:(...)WindowsPowerShell >