我正在尝试更新远程计算机上的文件字符串。在我的脚本中,我正在使用以下代码。
print("egad", "some words")
但我收到以下错误:
Replace-FileString.ps1:术语“Replace-FileString.ps1”未被识别为cmdlet,函数,脚本文件或可运行程序的名称
我甚至尝试使用Get-Content Clients.txt | ForEach-Object \\{ Get-Item "\\$_\D$\Runtime\run.properties" \\} | Replace-FileString.ps1 -Pattern '$PropName=.*' -Replacement '$PropName=$PropValue' -Overwrite
并且我遇到同样的错误。
这是正确的方式还是有其他方法可以做到这一点?
答案 0 :(得分:0)
指定脚本名称。 PS找不到此脚本,因此请插入脚本的路径(目标系统) - 例如" C:.... \替换 - FileString.ps1&#34 ;. 如果它在同一个目录中,则只需"。\ Replace-FileString.ps1"。
答案 1 :(得分:0)
我尝试了以下命令,它运行正常
Get-Content Clients.txt | ForEach-Object { (Get-Content -Path "\\$_\D$\Runtime\run.properties") -replace "provisioner.events.monitor=.*","provisioner.events.monitor=JagadeeshTest" | Set-Content -Path "\\$_\D$\Runtime\run.properties"}
答案 2 :(得分:0)
Replace-FileString.ps1
是psappdeploytoolkit的一部分,除非您专门安装了系统,否则不会出现在系统中。
您可以改为使用replace
(more info on this command)代替:
ForEach ($client in (Get-Content Clients.txt)) {
(Get-Content "\\$client\D$\Runtime\run.properties") -replace "$PropName=.*","$PropName=$PropValue" |
Out-File "\\$client\D$\Runtime\run.properties"
}