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

修改PowerShell脚本:移除匹配'!'的原行并添加指定配置

修改PowerShell脚本移除原匹配的'!'行

原脚本的问题在于,遇到包含!的行时会先输出该行(即原有的!),再追加配置内容,导致结果出现两个!。要移除第一个原有的!,只需要调整输出逻辑,匹配到!时不输出原行,直接输出后续配置内容即可。

修改后的脚本方案一(条件分支拆分)

foreach ($Prog in $input) {
    (Get-Content $Prog.CamPath) | Foreach-Object {
        # 仅当当前行不包含'!'时,才输出原行
        if (-not ($_ -match '!')) {
            $_
        }
        # 匹配到'!'时,直接输出配置内容和结尾的'!'
        if ($_ -match '!')  {  
            '<139 \Komponente\'
            'IN="4Seiten_fuegen.mpr"'
            'XA="0.0000"'
            'YA="0.0000"'
            'ZA="0.0000"'
            'EM="0"'
            'PR="0"'
            'VA="length 500.0000"'
            'VA="width 500.0000"'
            'VA="rotation 0.0000"'
            'KO="00"'
            '!'
        }
    } | Set-Content $Prog.CamPath
}

修改后的脚本方案二(合并if-else逻辑,更简洁)

foreach ($Prog in $input) {
    (Get-Content $Prog.CamPath) | Foreach-Object {
        if ($_ -match '!')  {  
            '<139 \Komponente\'
            'IN="4Seiten_fuegen.mpr"'
            'XA="0.0000"'
            'YA="0.0000"'
            'ZA="0.0000"'
            'EM="0"'
            'PR="0"'
            'VA="length 500.0000"'
            'VA="width 500.0000"'
            'VA="rotation 0.0000"'
            'KO="00"'
            '!'
        } else {
            # 非匹配行正常输出原内容
            $_
        }
    } | Set-Content $Prog.CamPath
}

修改后执行效果

处理后的文件内容会变成:

<139 \Komponente\
IN="4Seiten_fuegen.mpr"
XA="0.0000"
YA="0.0000"
ZA="0.0000"
EM="0"
PR="0"
VA="length 500.0000"
VA="width 500.0000"
VA="rotation 0.0000"
KO="00"
!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 16:36:43