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

如何创建Windows资源管理器右键菜单导出选中文件路径到文本文件

方案1:优化原批处理逻辑规避资源抢占

原问题根源是Windows会为每个选中文件单独启动批处理进程,多进程同时写入文件时触发锁冲突,失败进程直接退出导致路径漏写。可给写入逻辑增加失败重试机制,确保每个路径都成功写入后进程再退出:

@echo off
:write_retry
echo "%~f1" >> "%~dp1filelist-selected.txt" 2>nul
if %errorlevel% equ 1 goto write_retry

说明:2>nul会屏蔽写入失败的报错信息,一旦检测到写入错误就自动循环重试,无需额外依赖即可解决资源抢占问题。

方案2:借助系统剪贴板/单进程调用实现

该方案完全规避多进程写入冲突问题,稳定性更高,有两种实现思路:

  • 直接调用PowerShell单进程处理所有选中文件,注册表右键菜单的命令填写如下内容即可:
powershell.exe -Command "$paths = $args; $savePath = Join-Path (Split-Path $paths[0].FullName -Parent) 'filelist-selected.txt'; $paths | ForEach-Object { "`"$($_.FullName)`"" } | Out-File $savePath -Encoding UTF8" %*

PowerShell支持一次性接收所有选中文件作为参数,单进程即可完成全部路径的写入,不存在资源抢占问题。

  • 搭配「复制为路径」功能使用:先配置右键菜单常驻显示「复制为路径」选项,选中文件点击该选项复制所有路径到剪贴板后,再新增一个右键菜单项执行如下命令,直接读取剪贴板内容写入文件:
powershell.exe -Command "$paths = Get-Clipboard; $savePath = Join-Path (Split-Path $paths[0].Trim('"') -Parent) 'filelist-selected.txt'; $paths | Out-File $savePath -Encoding UTF8"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:18:00