我有一个很长的自定义应用程序配置文件,用于在工作站上运行的应用程序,其中一些文本元素必须在系统之间手动更改。
这个脚本是为了让我的生活更轻松 -
$content = Get-Content("C:\file.text")
$content = $content.replace("%DoTheThing?%","TRUE")
$content = $content.replace("%Place%","SpecificPlace")
$content = $content.replace("%SystemName%",$env:HOSTNAME)
$content = Set-Content("C:\file.text")
当我执行脚本时,第一个文本项被正确替换,第三个被删除,而不是被替换。作为 Power Shell 的新手,我该如何更正这个问题 - 让实际的系统名称替换 %SystemName% 部分?
最佳答案
问题是 $env:HOSTNAME
不是有效的环境变量。
要获取所有环境变量的列表,您可以运行 Get-ChildItem Env:
$Env:COMPUTERNAME
应该可以解决问题,因此将其更改为:
$content = Get-Content("C:\file.text")
$content = $content.replace("%DoTheThing?%","TRUE")
$content = $content.replace("%Place%","SpecificPlace")
$content = $content.replace("%SystemName%",$Env:COMPUTERNAME)
$content = Set-Content("C:\file.text")
关于PowerShell:如何将 $env:HOSTNAME/$env:Computer) 作为文本替换的一部分插入到文本文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51543683/