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

发布于 2024-11-03 12:07:05 字数 254 浏览 0 评论 0原文

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

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

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

该脚本打印出 Hello world。我可以使用什么技术让它打印出再见世界

Is it possible to write self-modifying PowerShell scripts?

Suppose I have a script named foo.ps1:

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

This script prints out Hello world. What techniques could I use to get it to print out Goodbye world?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

独享拥抱 2024-11-10 12:07:06

对我来说这没有意义,修改脚本后,您需要重新点源它才能获得新的语句。

该脚本将自身更改三次:

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?

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

To me it does not make sense, after you have modified a script, you need to re-dotsource it in order to get new statments.

This script changes itself three times:

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

and prints:

Hello World
Goodbye World
Is really useful?

Another possibility is to write a script which accepts as input parameters script blocks.

梦里°也失望 2024-11-10 12:07:06

是的,你和我都会有更好的方法来完成你的任务并完成任务。

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

Yes you an however I would be there is a better way to do what you and to accomplish.

C:(...)WindowsPowerShell >.\foo.ps1
Hello world
C:(...)WindowsPowerShell >.\foo.ps1
Goodbye world
C:(...)WindowsPowerShell >
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文