Можно ли писать скрипты PowerShell с самоизменением?

Можно ли писать скрипты PowerShell с самоизменением?

Предположим, у меня есть скрипт с именем foo.ps1:

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

Этот скрипт распечатывает Hello world, Какие приемы можно использовать, чтобы распечатать Goodbye world?

2 ответа

Решение

Для меня это не имеет смысла, после того, как вы изменили сценарий, вам нужно повторно использовать его для получения новой статистики.

Этот скрипт меняет себя три раза:

Write-Host "Привет, мир"
"Пиши-Хост`"Прощай, мир`"" | Сет-контент "foo.ps1",.\ Foo.ps1
"Write-Host `"Действительно ли это полезно?`"" | Сет-контент "foo.ps1",.\ Foo.ps1

и печатает:

Привет, мир
Прощай мир
Это действительно полезно?

Другой возможностью является написание скрипта, который принимает в качестве входных параметров скриптовые блоки.

Да, вы, однако, я был бы лучший способ сделать то, что вы и для достижения.

C:(...)WindowsPowerShell >.\foo.ps1
Hello world
C:(...)WindowsPowerShell >.\foo.ps1
Goodbye world
C:(...)WindowsPowerShell >
Другие вопросы по тегам