使用PowerShell更新/替换远程计算机上的文件字符串

时间:2018-03-07 18:26:18

标签: powershell

我正在尝试更新远程计算机上的文件字符串。在我的脚本中,我正在使用以下代码。

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 并且我遇到同样的错误。

这是正确的方式还是有其他方法可以做到这一点?

3 个答案:

答案 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.ps1psappdeploytoolkit的一部分,除非您专门安装了系统,否则不会出现在系统中。

您可以改为使用replacemore 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"
}