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

PowerShell脚本:检测文件存在并替换指定内容

批量修改多台电脑INI文件计时器参数的PowerShell实现

我们公司需要为约310台电脑修改.ini文件中的计时器参数以延长计时时长,查找现有脚本后发现无法满足需求,遂自行编写了以下PowerShell脚本。

脚本部署方法

方法一:通过组策略部署

  • 打开组策略编辑器,定位到「计算机配置→策略→Windows设置→脚本(启动/关机)」,点击「显示文件」,将.ps1脚本放入指定路径(示例路径:\\domain.local\SysVol\domain.local\Policies\{907A196A-0859-4AFB-9BE7-6BD4BFA94265}\Machine\Scripts\Startup)。
  • 返回脚本设置界面,点击「添加」,浏览并选择该.ps1文件。
  • 同时在同一条策略中配置脚本执行延迟:定位到「计算机配置→管理模板→系统→组策略→配置登录脚本延迟」,设置为4分钟。

方法二:通过Lansweeper执行

直接通过Lansweeper执行该脚本,操作更便捷高效。

欢迎试用、修改并指正问题,若有修改建议请告知,帮助更多有类似需求的人。

PowerShell脚本内容

复制时请注意检查符号(网页复制可能会破坏符号):

$FilePath = "" # 在引号内填入要查找和修改的文件路径及名称,例如 c:\Test\file.ini
$Search_entry_existing = "" # 在引号内填入要查找的内容
$Search_entry_change = "" # 在引号内填入要替换的目标内容
Test-Path -Path $FilePath -PathType Leaf # 检查文件是否存在
Select-String -Path $FilePath -Pattern "" # 在引号内填入要搜索的匹配模式

If (Test-Path $FilePath) {  
    $Check = Select-String -Path $FilePath -Pattern "" # 在引号内填入要搜索的匹配模式
    If ((Get-Content $FilePath) -notcontains 'TimerC=120') { # 在单引号内填入要检查是否不存在的内容,示例为TimerC=120
        cls  
        echo "File Exists"  
        echo "************************************************************"  
        echo "*** 目标文件 $FilePath 包含字符串 $Check ***"  
        echo "*** 正在将TimerC设置修改为120秒" # 示例场景:原参数为TimerC=75,需修改为120秒
        (Get-Content $FilePath) -replace '(TimerC)(.*)', '$1=120' | Set-Content $FilePath  # 替换目标字符串并保存文件
    }  
    else {  
        # 若目标参数已符合要求,则不执行修改操作    
        cls  
        echo "*** 目标文件 $FilePath 已包含字符串 $Search_entry_change ***"  
        echo "*** 无需修改,TimerC已设置为120秒 ***"  
    }  
}  
else {  
    # 若未找到指定路径下的文件,说明对应程序未安装  
    Write-Host "未找到目标文件,对应程序未安装!!!"  
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 13:50:29