我需要打开一个文件并搜索子字符串。然后替换同一行上的其他文本。
必须搜索文本:#define MyAppVersion
并替换双引号内的版本(这是动态的,将从另一个文件中获取)。
#define MyAppVersion "1.0.0"
所以这是我目前拥有的:
rem version num to be retrieved elsewhere, set here for simplicity on sample
set VER=1.1.0
powershell -Command "(gc sample.iss) -replace '#define MyAppVersion', '#define MyAppVersion "%VER%"' | Out-File sample.iss"
但这仅是这样的输出:
#define MyAppVersion 1.1.0 "1.0.0"
我如何在不使用任何第三方插件的情况下更改整行?
谢谢!
最佳答案
终于成功了
set VER=1.1.0
powershell -Command "(gc sample.iss) -replace '#define MyAppVersion.+', '#define MyAppVersion "\"%VER%"\"' | Out-File mod.iss"
.+
将与该行的其余部分匹配关于powershell - 使用子字符串替换cmd中的文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61634667/