我有这个执行的 bat 文件,效果很好:
SET RPPROPERTIESPATH='C:\work\filepath.txt' //contains the word 'string1'
powershell -Command "(gc %RPPROPERTIESPATH%) -replace 'string1', 'string2' | Out-File -encoding ASCII %RPPROPERTIESPATH%"
但是我希望替换参数来自像这样的变量:
SET RPPROPERTIESPATH='C:\work\filepath.txt' //contains the word 'string1'
SET STRINGTOREPLACE='string3'
powershell -Command "(gc %RPPROPERTIESPATH%) -replace 'string1', %STRINGTOREPLACE% | Out-File -encoding ASCII %RPPROPERTIESPATH%"
这是行不通的,我应该怎么做?
最佳答案
Set variables使用set "varname=varvalue"
语法模式,并在需要时使用引号,例如"%varname%"
(对于cmd)或'%varname%'
(对于PowerShell)。然后,您的代码段应如下所示:
SET "RPPROPERTIESPATH=C:\work\filepath.txt" //contains the word 'string1'
SET "STRINGTOREPLACE=string3"
powershell -Command "(gc '%RPPROPERTIESPATH%') -replace 'string1', '%STRINGTOREPLACE%' | Out-File -encoding ASCII '%RPPROPERTIESPATH%'"
关于windows - 如何在以.bat文件编写的powershell命令中读取变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61937842/