如何在任意文件夹运行C:\Scripts中的Rename.bat批量重命名文件
解决方案
1. 修改批处理文件
原批处理里的pushd %~dp0会强制切换到脚本自身所在的C:\Scripts目录,导致只会处理该目录下的文件,这是核心问题。修改后的脚本会处理xplorer2当前打开的目录:
将脚本保存为C:\Scripts\Rename Comics to CBR.bat,内容如下:
@echo off rem 处理当前工作目录及子目录下的所有.cbz文件,重命名为.cbr forfiles /S /M *.cbz /C "cmd /c rename @file @fname.cbr" rem 可选:若需要执行完查看结果,取消下一行注释 rem pause
2. 配置xplorer2调用命令
在xplorer2中添加自定义命令,使用以下格式:
cmd /c "C:\Scripts\Rename Comics to CBR.bat"
cmd /c:执行完脚本后自动关闭CMD窗口;若想执行后保持窗口查看日志,替换为cmd /k- 路径必须用Windows标准的反斜杠
\,不要用正斜杠/
如果需要明确指定工作目录(确保脚本处理xplorer2当前面板的目录),可以用xplorer2的内置变量<curpath>:
start /D "<curpath>" cmd /c "C:\Scripts\Rename Comics to CBR.bat"
问题根源说明
- 原脚本的
pushd %~dp0强制切换到脚本所在目录,而非你当前操作的目录 - 你之前的调用命令用了错误的正斜杠
/,且参数顺序错误(/c应属于cmd,而非批处理文件)
内容的提问来源于stack exchange,提问作者Nick Greenfield
相关产品推荐
相关产品推荐

