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

如何通过资源管理器右键菜单用批处理创建文件夹/文件的零字节副本?

右键菜单执行Robocopy批处理异常问题解决

操作背景与配置

批处理脚本设置

  • 文件夹处理脚本 C:\com\folders.bat:
Robocopy /Create /Purge /S "%cd%" "%cd% Dummy"
Pause
  • 文件处理脚本 C:\com\files.bat:
Robocopy /Create /Purge "%cd%" "%cd%/Dummy"
pause

注册表右键菜单配置

针对文件夹右键菜单,在注册表项 HKEY_CLASSES_ROOT\Directory\shell\Dummy\command 中,将默认值(REG_SZ类型)设置为:

"C:\com\folders.bat" "%1"

异常现象

  • 右键点击文件夹执行脚本时,生成的是目标文件夹的父文件夹的完整副本(包含所有子文件夹和文件),而非目标文件夹本身的副本;
  • 右键点击文件执行脚本时,会把当前文件夹内所有文件的零字节副本生成到同目录的Dummy文件夹,而非仅处理右键选中的单个文件;
  • 直接在命令提示符中运行两个批处理脚本,结果完全符合预期。

问题根源与修正方案

问题核心是:通过右键菜单启动批处理时,%cd% 取的是系统默认路径(如C:\Windows\System32),而非右键点击对象的所在路径,且原脚本未使用注册表传递的目标路径参数%1。

修正后的文件夹处理脚本(folders.bat)

@echo off
if not exist "%~1\" (
    echo 请通过文件夹右键菜单执行此脚本
    pause
    exit /b 1
)
Robocopy /Create /Purge /S "%~1" "%~1 Dummy"
Pause

修正后的文件处理脚本(files.bat)

@echo off
if not exist "%~1" (
    echo 请通过文件右键菜单执行此脚本
    pause
    exit /b 1
)
set "file_dir=%~dp1"
set "dummy_dir=%file_dir%Dummy"
Robocopy /Create /Purge "%file_dir%" "%dummy_dir%" "%~nx1"
pause

补充注册表配置(文件右键菜单)

需新增文件右键菜单的注册表项 HKEY_CLASSES_ROOT\*\shell\Dummy\command,将默认值设置为:

"C:\com\files.bat" "%1"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 08:27:11