试试纯批能走多远... 以下代码存为 test.bat 运行,代码中第四行预设了三个扩展名选项(txt, lst, csv)可自定义修改或追加 命令行用法如 test "要改扩展名的文件",或将目标文件直接拖拽给 test.bat 亦可 [ol]@echo off &setlocal &if "%~1"=="" (set/p "f=拖入一个要更改扩展名的文件:") else set "f=%~1" set "f=%f:"=%" & for %%F in ("%f%") do set "nF=%%~nF" setlocal enabledelayedexpansion & set "n=1" for %%e in (txt, lst, csv) do echo,!n! = %%e&set/a "n+=1" &set "_!n!=%%e" choice /c "0123456789abc" /n /m "键入以上一个序号改为对应的扩展名(0=自定义扩展名):" if %errorlevel% neq 1 (set "e=!_%errorlevel%!") else set/p "e=自定义扩展名:" ren "!f!" "!nF!.!e!" &exit/b[/ol]复制代码
再给一个 bat+mshta 混编脚本,可实现自定义输入扩展名,也可从下拉选项菜单中择取 以下代码可存为 test.bat 运行,可直接拖拽要更改扩展名的文件给 test.bat 运行即可,如没有拖拽文件喂送,test.bat 会要求即时拖入一个目标文件 代码第12-14行预设了三个扩展名选项示例如 txt lst csv,可自定义修改或添加 本脚本采用的 mshta 要求系统内置的 ie 引擎至少是 v9 版 因采用独立运行 mshta 脚本文件,故 test.bat 在 win11 新版本系统下依然可正常运行 [ol] 【更改文件扩展名】 自定义扩展名: 扩展名选项: txt lst csv [/ol]复制代码
redyear2026 发表于 2026-3-28 21:45 再给一个 bat+mshta 混编脚本,可实现自定义输入扩展名,也可从下拉选项菜单中择取 以下代码可存为 t ... 非常感谢! 这个拖拽确实可以用。 如果想弄到右键菜单中,右击文件,在菜单中选择运行此批处理,弹出修改对话框,要怎样写?因为我感觉集成在右键中,使用更方便。谢谢。
xmzhqw 发表于 2026-3-28 21:59 非常感谢! 这个拖拽确实可以用。 如果想弄到右键菜单中,右击文件,在菜单中选择运行此批处理,弹出修改 ... 以下代码存为 test.reg(其中最后一行可自定义真实路径文件名,预设 c:\\test\\test.bat),双击运行会有弹窗提示,点击 '是' 即可完成注册表设置,试试吧 [ol]Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\修改文件扩展名] [HKEY_CLASSES_ROOT\*\shell\修改文件扩展名\command] @="cmd.exe /c c:\\test\\test.bat \"%L\""[/ol]复制代码