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

PowerShell操作Notepad++:无法复制书签行至剪贴板/新页面

PowerShell 操作Notepad++复制书签行失败的解决方法

问题根源

  1. 原脚本仅标记了第一个匹配22102的行,未批量处理所有符合条件的行
  2. 错误使用快捷键^9,Notepad++默认复制书签行的快捷键为Ctrl+Shift+X(或通过菜单操作更稳定,避免自定义快捷键冲突)
  3. 后续计划代码中$bookmarkedLines变量未定义,直接执行会报错
  4. 重复启动Notepad++进程会导致窗口激活混乱,无法确保操作目标窗口正确

修正后的完整脚本

$file = "C:\Files\Timings.csv"
$notepadPath = "C:\Program Files\Notepad++\notepad++.exe"
$outputFile = $file -replace "\.csv$", "-modified.csv"

# 1. 打开目标CSV文件
Start-Process -FilePath $notepadPath -ArgumentList $file
Start-Sleep -Milliseconds 1000 # 延长等待时间确保Notepad++完全加载

Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName Microsoft.VisualBasic

# 激活Notepad++窗口
[Microsoft.VisualBasic.Interaction]::AppActivate("Notepad++")
Start-Sleep -Milliseconds 200

# 2. 批量标记所有Location=22102的行
# 打开查找对话框
[System.Windows.Forms.SendKeys]::SendWait("^f")
Start-Sleep -Milliseconds 200
# 输入查找内容
[System.Windows.Forms.SendKeys]::SendWait("22102")
Start-Sleep -Milliseconds 200
# 开启标记所有匹配行的书签(通过查找对话框的标记功能)
[System.Windows.Forms.SendKeys]::SendWait("{TAB 4}") # 切换到"标记"选项卡
Start-Sleep -Milliseconds 100
[System.Windows.Forms.SendKeys]::SendWait(" ") # 勾选"标记所有找到的行"
Start-Sleep -Milliseconds 100
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
Start-Sleep -Milliseconds 300

# 3. 复制所有书签行
# 通过菜单操作(避免快捷键冲突):Alt+S打开搜索菜单 → B打开书签子菜单 → C复制书签行
[System.Windows.Forms.SendKeys]::SendWait("%s")
Start-Sleep -Milliseconds 100
[System.Windows.Forms.SendKeys]::SendWait("b")
Start-Sleep -Milliseconds 100
[System.Windows.Forms.SendKeys]::SendWait("c")
Start-Sleep -Milliseconds 300

# 4. 在当前Notepad++实例中新建文档并粘贴
[System.Windows.Forms.SendKeys]::SendWait("^n")
Start-Sleep -Milliseconds 200
[System.Windows.Forms.SendKeys]::SendWait("^v")
Start-Sleep -Milliseconds 200

# 5. 直接从剪贴板读取内容并保存为新CSV文件
$clipboardContent = [System.Windows.Forms.Clipboard]::GetText()
$clipboardContent | Out-File -FilePath $outputFile -Encoding UTF8

关键修改说明

  • 批量标记行:改用查找对话框的"标记所有找到的行"功能,一次性标记所有匹配行,无需循环点击
  • 菜单式复制:通过Alt+S → B → C的菜单路径操作,避免快捷键被用户自定义修改导致失效
  • 窗口稳定性:始终操作同一个Notepad++实例,避免多进程激活混乱
  • 文件保存优化:直接读取剪贴板内容写入文件,无需依赖Notepad++的保存操作,更可靠

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 18:47:12