右键菜单运行ib.cmd脚本时出现文件名/目录名语法错误,如何解决?
问题解决步骤
1. 修复注册表命令行的引号嵌套问题
右键菜单调用时的路径语法错误,核心原因是注册表中command项的引号处理不正确。修改注册表文件中的对应条目为:
[HKEY_CURRENT_USER\Software\Classes\Directory\ContextMenus\QuickTask\shell\IrfanViewer Convert\command] @="cmd.exe /S /K \"\"C:\\CustomExecutables\\ib.cmd\" \"%V\"\""
导入修改后的.reg文件,或者直接在注册表编辑器中更新该值为:cmd.exe /S /K ""C:\CustomExecutables\ib.cmd"" "%V""
这样能确保带空格的路径被正确传递给脚本。
2. 修复脚本中的延迟扩展变量引用错误
你的脚本开启了延迟扩展,但第一个统计文件总数的if判断使用了%total%(预解析扩展),导致无法获取循环中更新的数值,修改为!total!(运行时扩展):
if !total! equ 0 ( echo No files to process pause exit /b )
3. 新增转换目录自动创建逻辑(可选但推荐)
为避免IrfanView因目标目录不存在报错,在脚本中添加目录创建代码,放在第一个for循环之前:
if not exist "!target!\converted" mkdir "!target!\converted"
完成以上修改后,右键菜单调用脚本即可正常执行批量转换操作。
内容的提问来源于stack exchange,提问作者tetratheta
相关产品推荐
相关产品推荐

