[英]How to read a variable inside a powershell command written in a .bat file
我有这个我执行的 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 "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%"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.