首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用.ini替换PowerShell中一行文本

使用.ini替换PowerShell中一行文本
EN

Stack Overflow用户
提问于 2015-10-30 14:41:28
回答 3查看 3.9K关注 0票数 0

你好,我试图在PowerShell中运行一个脚本来替换.ini文件中的一行文本。

代码语言:javascript
复制
(Get-Content C:\ProgramData\Nuance\NaturallySpeaking12\nssystem.ini) | ForEach-Object { $_ -replace "Default NAS Address=","Default NAS Address=BHPAPPDGN01V" } | Set-Content C:\ProgramData\Nuance\NaturallySpeaking12\nssystem.ini

这个脚本可以工作,但是当我多次运行它时,.ini文本一直被添加到行的末尾,给了我一堆垃圾。

示例:运行脚本4次“默认NAS Address=BHPAPPDGN01VBHPAPPDGN01VBHPAPPDGN01VBHPAPPDGN01V”“

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-30 14:50:47

试试这个:

代码语言:javascript
复制
(Get-Content C:\ProgramData\Nuance\NaturallySpeaking12\nssystem.ini) | ForEach-Object { $_ -replace 'Default NAS Address=.*','Default NAS Address=BHPAPPDGN01V' } | Set-Content C:\ProgramData\Nuance\NaturallySpeaking12\nssystem.ini

我只是尝试使用regex来选择=后面的所有内容。

票数 3
EN

Stack Overflow用户

发布于 2015-10-30 19:06:28

替换

"-replace“默认NAS Address=

"-replace“默认NAS地址=A-Z0-9*”

票数 0
EN

Stack Overflow用户

发布于 2020-02-26 11:39:05

我不喜欢上面的建议,所以这是我的解决方案,以防有人从谷歌跌跌撞撞,发现它有用。

test.ini含量

代码语言:javascript
复制
[Other Parameter] = Something
[My Parameter] = What I wouldnt give for a change of heart
[Other Parameter] = Nothing

我的解决方案:

代码语言:javascript
复制
$MyString = Get-Content "C:\Test_Script\test.ini"
$NewString = $MyString.replace("[My Parameter] = What I wouldnt give for a change of heart","[My Parameter] = I gave my heart for a piece of string")
Set-Content -Path "C:\Test_Script\test.ini"  -Value $NewString

test.ini含量变化

代码语言:javascript
复制
[Other Parameter] = Something
[My Parameter] = I gave my heart for a piece of string
[Other Parameter] = Nothing
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33438600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档