【发布时间】:2017-12-17 11:24:37
【问题描述】:
我的问题是我想更改保存在文件夹及其子文件夹中的 INI 文件中的路径。
文件夹的路径是C:\New\Path\。
示例 INI 文件:
notANiText = C:\A\Path\notANiText maybeAIniText = C:\A\Path\maybeAIniText ANiText = C:\A\Path\ANiText我阅读了一些关于 PSini 的其他问题,但我不想只是 id,因为我想在多台 PC 上使用脚本并且我不想每次都安装 PSini。
我试过了:
$mabyIni = "C:\New\Path"
$AiniFile = Get-ChildItem - Path "C:\New\Path\*" -Include *.ini -Recurse
foreach ($file in $AiniFile) {
Select-String -Path $file -AllMatches "C:\A\Path\" | ForEach-Opject {
$file -replace [regex]:Escape('C:\A\Path'), ('$mabyIni')
} | Set-Content $mabyIni -Include *.ini
但这不起作用。我也用Get-Content 尝试过,但也没有用。
有什么办法不使用 PSini 吗?
【问题讨论】:
-
它应该在ini文件中搜索路径并将其替换为新的。我也试过: $mabyIni = "C:\New\Path" $AiniFile = Get-ChildItem - Path "C:\New\Path*" -include *.ini -recurse ForEach($AiniFile 中的$file) { (Get -内容 $AiniFile.PSPath) | ForEach-Opject {$file -replace [regex]:Escape('C:\A\Path'),('$mabyIni') }|设置内容 $mabyIni -include *.ini
-
您应该更新您的问题,而不是发表评论。您评论中的代码真的很难阅读。无论如何,我在你的评论中看到了代码的问题,我会写一个关于为什么它不起作用的答案。
标签: powershell replace path ini