如何用代码在Edge所有现有配置文件中自动执行Bing搜索查询
修复Edge多配置文件Bing搜索自动化脚本的问题
原脚本在默认配置文件中运行正常,但AI提供的脚本存在参数错误、配置识别逻辑异常等问题,导致出现创建新配置文件、部分配置无法正常执行的情况。以下是修正后的完整脚本及问题说明:
修正后的PowerShell脚本
# 定义每个配置文件的搜索任务函数 function Invoke-BingSearchForProfile { param( [Parameter(Mandatory=$true)] [string]$ProfileDirectoryName ) # 提前读取随机词汇列表,避免每次循环重复读取文件提升效率 $wordList = Get-Content -Path "C:\Users\ashq4\OneDrive\Documents\RandomwordList.txt" $questionPrefixes = @("what+is+", "Definition+", "Thesaurus+for+", "Examples+of+", "prefixes+for+", "suffixes+for+") # 先启动对应配置文件的Edge窗口(确保窗口存在) Start-Process -FilePath "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" ` -ArgumentList "--profile-directory=`"$ProfileDirectoryName`" --no-first-run --no-default-browser-check" ` -WindowStyle Minimized # 等待窗口初始化完成 Start-Sleep -Milliseconds 1000 # 执行45次随机搜索 for ($i = 0; $i -lt 45; $i++) { $randomWord = Get-Random -InputObject $wordList $randomQuestion = Get-Random -InputObject $questionPrefixes $searchUrl = "http://www.bing.com/search?q=$randomQuestion$randomWord" # 在对应配置文件的窗口中打开搜索标签页 Start-Process -FilePath "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" ` -ArgumentList "--profile-directory=`"$ProfileDirectoryName`" $searchUrl" ` -WindowStyle Minimized Start-Sleep -Milliseconds 1500 } # 打开当前配置的Bing奖励仪表盘 Start-Sleep -Milliseconds 2000 Start-Process -FilePath "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" ` -ArgumentList "--profile-directory=`"$ProfileDirectoryName`" https://www.bing.com/rewards/dashboard" Write-Host "完成配置文件 $ProfileDirectoryName 的搜索任务" } # 获取Edge所有已存在的配置文件目录 $edgeUserDataPath = "$env:LOCALAPPDATA\Microsoft\Edge\User Data" $profiles = Get-ChildItem -Path $edgeUserDataPath -Directory | Where-Object { $_.Name -eq "Default" -or $_.Name -match "^Profile \d+$" } | Select-Object -ExpandProperty Name # 遍历每个配置文件执行搜索任务 foreach ($profile in $profiles) { Invoke-BingSearchForProfile -ProfileDirectoryName $profile } Write-Host "所有配置文件任务执行完毕"
关键修改说明
修正参数传递错误
原脚本重复拼接--profile-directory参数,导致Edge解析错误并创建无效新配置。修正后直接传递配置文件目录名给参数,确保指向现有配置。正确识别所有现有配置
调整配置文件筛选逻辑,同时包含Default默认配置和标准命名的Profile X目录(通过正则匹配^Profile \d+$),覆盖所有用户已创建的配置。优化执行效率与稳定性
- 提前读取随机词汇列表,减少重复IO操作
- 增加窗口初始化等待时间,确保Edge完全启动后再执行搜索,避免标签页打开异常
- 给配置目录名添加引号,避免目录名含空格时出现参数解析错误
内容的提问来源于stack exchange,提问作者Asheeq
相关产品推荐
相关产品推荐

