You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将配置文件中等号后为空的内容替换为=none?

问题描述

我有一份noempty.txt文件,内容如下:

Caption=http://support.microsoft.com/?kbid=3150513

CSName=DC04

Description=Update

FixComments=

HotFixID=KB3150513

InstallDate=

InstalledBy=NT AUTHORITY\SYSTEM

InstalledOn=11/29/2022

Name=

ServicePackInEffect=

Status=

需要将其中类似FixComments=、InstallDate=、Name=这类等号后为空的行,修改为=none(即等号后添加none)。我尝试了以下PowerShell命令,但并未生效:

(Get-Content -Path c:\path\noempty.txt) | ForEach-Object {$_ -Replace '=\s', '=NONE'} | Set-Content -Path c:\path\noempty2.txt
解决建议

你的命令未生效的原因是正则表达式=\s仅匹配等号后跟空白字符(空格、制表符等),但目标行是等号后没有任何字符就直接到行尾,所以这个正则无法匹配到这些行。

可以使用以下两种修正后的命令:

1. 仅匹配等号后无任何内容的行

如果确定目标行是等号后直接换行(无空白字符),使用这个命令:

(Get-Content -Path c:\path\noempty.txt) | ForEach-Object { $_ -Replace '=$', '=none' } | Set-Content -Path c:\path\noempty2.txt

正则=$表示匹配行尾的等号,也就是等号后没有任何内容的情况。

2. 兼容等号后有空白字符的情况

如果需要兼顾等号后有空白字符(空格、制表符)再到行尾的情况,使用这个命令:

(Get-Content -Path c:\path\noempty.txt) | ForEach-Object { $_ -Replace '=\s*$', '=none' } | Set-Content -Path c:\path\noempty2.txt

正则=\s*$中,\s*表示匹配0个或多个空白字符,$表示行尾,这样不管等号后有没有空白,只要到行尾就会被替换。

内容的提问来源于stack exchange,提问作者AlexP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 09:35:22