我有一个蝙蝠文件,我执行它,它工作得很好。
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 "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%'"
一旦我排除了 "像这样",似乎就可以了。
SET STRINGTOREPLACE=string3
powershell -Command "(gc %RPPROPERTIESPATH%) -replace 'string1', '%STRINGTOREPLACE%' | Out-File -encoding ASCII %RPPROPERTIESPATH%"