windows - 如何在以.bat文件编写的powershell命令中读取变量

标签 windows powershell batch-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 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/

相关文章:

powershell - 按修改日期的 Azure 存储增量复制

powershell - 管道输入/输出

batch-file - 更改 WMIC 结果的格式

windows - 新的统一 Windows 开发人员中心 - 如何取消发布/隐藏/删除应用程序?

c++ - 如何以编程方式确定帐户是否属于 Administrators 组?

c# - 使用 CreateProcessAsUser 启动 url

batch-file - 从命令行安装 Sitecore 包

C++ WinAPI TextOut() 更新文本

powershell - Nuget复制文件并将其添加到解决方案级别

ant - 从批处理文件 : Later commands don't run 运行 ant