是否可以编写自修改的PowerShell脚本?

时间:2011-04-27 14:51:14

标签: powershell self-modifying

是否可以编写自修改的PowerShell脚本?

假设我有一个名为foo.ps1的脚本:

"Write-Host `"Goodbye world`"" | Set-Content "foo.ps1"
Write-Host "Hello world"

此脚本打印出Hello world。我可以使用哪些技术来打印Goodbye world

2 个答案:

答案 0 :(得分:1)

对我而言,没有任何意义,在您修改了脚本之后,您需要对其进行重新点源以获取新的声明。

此脚本自行更改三次:

Write-Host "Hello world"
"Write-Host `"Goodbye world`"" | Set-Content "foo.ps1"
. .\foo.ps1
"Write-Host `"Is really useful?`"" | Set-Content "foo.ps1"
. .\foo.ps1

并打印:

Hello World
Goodbye World
Is really useful?

另一种可能性是编写一个脚本,接受脚本块作为输入参数。

答案 1 :(得分:-1)

是的,但是我会有更好的方法去做你想做的事。

C:(...)WindowsPowerShell >.\foo.ps1
Hello world
C:(...)WindowsPowerShell >.\foo.ps1
Goodbye world
C:(...)WindowsPowerShell >