我想编写一个脚本,该脚本从用户获取输入并将文件中的单词更改为用户输入的内容。 看到有些人这样做:
(Get-Content c:\temp\test.txt).replace('word1', 'word2') | Set-Content c:\temp\test.txt
问题是我想用变量替换一个单词,所以当我把它放在逗号之间时它不会起作用。
我希望它是这样的:
$word = read-host " please enter a word"
(Get-Content c:\temp\test.txt).replace('oldtext', '$word') | Set-Content c:\temp\test.txt
有没有办法做到这一点?
更新: 尝试过这样:
$path = "C:\Users\tc98868\Desktop\dsp.json"
$word = read-host "please enter a word"
(Get-Content $path).replace('dsp.tar.gz', $word) | Set-Content $path
它仍然无效。
答案 0 :(得分:1)
从$word
PowerShell不会在单个引号内扩展变量,它的威胁是字符串
$word = read-host " please enter a word"
(Get-Content c:\temp\test.txt).replace('oldtext', $word) | Set-Content c:\temp\test.txt
对于PS版本2:
(Get-Content c:\temp\test.txt) -replace 'oldtext', $word | Set-Content c:\temp\test.txt