如何使用powershell替换.ini文件中的路径(c:\ test \ sqr.ini)

时间:2016-03-17 23:28:14

标签: windows powershell

我需要替换.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;

1 个答案:

答案 0 :(得分:0)

在未来请尝试研究之前,只需简单地提出一个问题,我确定其他人在未来不会那么简单。

$file= "D:\sqr.ini"
$newpath="c:\myprod\sqlrs\test;"
(Get-Content $path) -replace 'OUTPUT=.+', ("OUTPUT=$newpath") | Set-Content $path