找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 99|回复: 1

[分享] 创建右键菜单修改文件名的两个方法

[复制链接]
发表于 昨天 22:28 | 显示全部楼层 |阅读模式
   方法一是采用现有文件名修改目标文件名,方法二是采用剪贴板文本修改目标文件名
   以下示例代码采用 jscript,原因有三,一是在注册表内直接用 cmd.exe 启运批处理脚本代码可能会导致闪屏;二是 winPE 通常没有预装 powershell;三是 win11 高版本如 24H2+ 已彻底移除了 mshta 内嵌式代码应用(形如批处脚本或注册表中直接写入的 mshta VBScript:... 代码)。
   以下是三个示例脚本 x1.js, x2.js, x3.js 和一个注册表设置文件 右键菜单-修改文件名.reg,四个文件假设均存放在 c:\x 目录中,变更三个 *.js 文件的存放位置,须同时更新 *.reg 文件中的对应位置
   先运行 右键菜单-修改文件名.reg,其后即可在资源管理器中使用相应的 【修改文件名】右键菜单,其中包含三个二级子菜单,第一和第二个子菜单用于上述第一个更名方法,第三个子菜单用于上述第二个更名方法。

x1.js
  1. WSH.createObject('wscript.shell').RegWrite('HKCU\\Volatile Environment\\#$', WSH.arguments(0)), WSH.quit();
复制代码

x2.js
  1. v=WSH.arguments, ws=WSH.createObject('wscript.shell'), fso=WSH.createObject('scripting.filesystemobject');
  2. try { rv=ws.RegRead('HKCU\\Volatile Environment\\#$'); } catch(e) { ws.popup('未指定新文件名 ...5秒后退出', 5, '【报错】', 1|4096), WSH.quit(); }
  3. pf=fso.GetParentFolderName(v(0)), ef=fso.GetExtensionName(v(0)), nf=fso.GetBaseName(rv), f=pf+'\\'+nf+'.'+ef;
  4. if (rv==v(0) || fso.fileExists(f)) { ws.popup('新文件名与现有文件冲突 ...5秒后退出', 5, '【报错】', 1|4096), WSH.quit(); }
  5. fso.moveFile(v(0), f), WSH.quit();
复制代码
x3.js
  1. v=WSH.arguments, ws=WSH.createObject('wscript.shell'), fso=WSH.createObject('scripting.filesystemobject');
  2. c=WSH.createobject('htmlfile').parentWindow.clipboardData.getData('text');
  3. if (!c) { ws.popup('未发现剪贴板文本数据 ...5秒后退出', 5, '【报错】', 1|4096), WSH.quit(); } else nf=fso.getBasename(c);
  4. if (/[\:\?\*\<\|\>\"]/.test(nf)) { ws.popup('剪贴板路径文件名有非法字符 ...5秒后退出', 5, '【报错】', 1|4096), WSH.quit(); }
  5. pf=fso.getParentFolderName(v(0)), ef=fso.getExtensionName(v(0)), f=pf+'\\'+nf+'.'+ef;
  6. if (f.length>259) { ws.popup('剪贴板路径文件名长度超限 ...5秒后退出', 5, '【报错】', 1|4096), WSH.quit(); }
  7. fso.moveFile(v(0), f), WSH.quit();
复制代码
右键菜单-修改文件名.reg
  1. Windows Registry Editor Version 5.00

  2. [HKEY_CLASSES_ROOT\*\shell\ren_filename]
  3. @=""
  4. "MUIVerb"="【修改文件名】"
  5. "SubCommands"=""
  6. "Icon"="notepad.exe,0"

  7. [HKEY_CLASSES_ROOT\*\shell\ren_filename\shell]

  8. [HKEY_CLASSES_ROOT\*\shell\ren_filename\shell\1-提取文件名]
  9. @=""
  10. "MUIVerb"="先提取文件名"

  11. [HKEY_CLASSES_ROOT\*\shell\ren_filename\shell\1-提取文件名\command]
  12. @="wscript.exe /e:jscript c:\\x\\x1.js \"%1\""

  13. [HKEY_CLASSES_ROOT\*\shell\ren_filename\shell\2-修改文件名]
  14. @=""
  15. "MUIVerb"="后修改文件名"

  16. [HKEY_CLASSES_ROOT\*\shell\ren_filename\shell\2-修改文件名\command]
  17. @="wscript.exe /e:jscript c:\\x\\x2.js \"%1\""

  18. [HKEY_CLASSES_ROOT\*\shell\ren_filename\shell\3-用剪贴板数据修改文件名]
  19. "muiVerb"="用剪贴板文本修改文件名"

  20. [HKEY_CLASSES_ROOT\*\shell\ren_filename\shell\3-用剪贴板数据修改文件名\command]
  21. @="wscript.exe /e:jscript c:\\x\\x3.js \"%1\""

复制代码






发表于 昨天 23:33 | 显示全部楼层
感谢分享!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-4-2 01:32

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表