我需要替换.ini文件中的一行。
目前我的脚本看起来像这样......
clear
$file= "D:\sqr.ini"
$path="c:\bin\TestPWProv_VC;"
$newpath="c:\myprod\sqlrs\test;"
get-content $file |
Foreach-Object { $_ -replace $path,$newpath } | Set-Content D:\result.ini
但是这给了我一个错误
Invalid regular expression pattern: c:\bin\TestPWProv_VC;.
At line:7 char:38
+ Foreach-Object { $_ -replace <<<< $path,$newpath } | Set-Content D:\result.ini
+ CategoryInfo : InvalidOperation: (c:\bin\TestPWProv_VC;:String) [], RuntimeException
+ FullyQualifiedErrorId : InvalidRegularExpression
Invalid regular expression pattern: c:\bin\TestPWProv_VC;.
At line:7 char:38
+ Foreach-Object { $_ -replace <<<< $path,$newpath } | Set-Content D:\result.ini
+ CategoryInfo : InvalidOperation: (c:\bin\TestPWProv_VC;:String) [], RuntimeException
+ FullyQualifiedErrorId : InvalidRegularExpression
请您提供一些建议,为什么这不起作用,非常感谢任何帮助。
这是.ini文件
[INFO] PROVIDER=;
OUTPUT=c:\bin\TestPWProv_VC.ini;
TABLENAME=;
OUTPUT=c:\bin\TestPWProv_VC.ini;
DEFAULTQUERY=;
VERSION=1,50,3518,0;
TABLE=Privlib;
OUTPUT=c:\bin\TestPWProv_VC.ini;
PROVIDER=TestPWProv_VC;
TABLENAME=Privlib;
答案 0 :(得分:0)
在未来请尝试研究之前,只需简单地提出一个问题,我确定其他人在未来不会那么简单。
$file= "D:\sqr.ini"
$newpath="c:\myprod\sqlrs\test;"
(Get-Content $path) -replace 'OUTPUT=.+', ("OUTPUT=$newpath") | Set-Content $path