繁体   English   中英

如何读取用 .bat 文件编写的 powershell 命令中的变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM