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

[讨论] win11 mshta.exe vbscript有没有好的解决替代????

  [复制链接]
发表于 前天 18:59 | 显示全部楼层 |阅读模式
  1. echo   文件右键添加 复制文件名 (不含扩展名)
  2. Reg.exe add "HKLM\SOFTWARE\Classes\*\shell\CopyFileName" /ve /t REG_SZ /d "复制文件名 (不含扩展名)" /f
  3. Reg.exe add "HKLM\SOFTWARE\Classes\*\shell\CopyFileName" /v "icon" /t REG_SZ /d "%%SystemRoot%%\System32\imageres.dll,-5304" /f
  4. if %MBuild% LEQ 22000 Reg.exe add "HKLM\SOFTWARE\Classes\*\shell\CopyFileName\command" /ve /t REG_EXPAND_SZ /d "%%SystemRoot%%\System32\mshta.exe vbscript:Execute(\"fns=Split(\"\"%%1\"\",\"\"\\\"\"):fn=fns(UBound(fns)):pos=InStrRev(fn,\"\".\"\"):If pos Then fn=Left(fn,pos-1):clipboardData.SetData \"\"text\"\",fn\")(window.close)" /f
  5. if %MBuild% GTR 22000 Reg.exe add "HKLM\SOFTWARE\Classes\*\shell\CopyFileName\command" /ve /t REG_SZ /d "cmd.exe /c for %%%%i in (\"%%1\") do echo|set /p=%%%%~ni|clip" /f
复制代码


发表于 20 分钟前 | 显示全部楼层
本帖最后由 redyear2026 于 2026-8-26 21:26 编辑

如果 win11 系统可以安装或已安装了 python 环境,确实有一个比较周全的解决方案,既能够静默运行无屏闪,亦可免去预存的外部脚本文件,即在注册表右键菜单中直接嵌入 pythonw.exe -c "..." 的命令行代码,对本帖要求而言,代码仅需调用 python 系统内置模块 os 和 pathlib 即可,示例如下(其中 pythonw.exe 须用全路径定义,用时要替换代码预设的 c:\applications\python.3x\pythonw.exe 为真实路径)...

test.bat(须用右键管理员身份运行)
  1. @echo off &reg add "HKCR\*\shell\_test_" /ve /t reg_sz /d "【复制纯文件名到剪贴板】" /f
  2. reg add "HKCR\*\shell\_test_\command" /ve /t reg_expand_sz /d "\"c:\applications\python.3x\pythonw.exe\" -c \"import os;from pathlib import Path;with os.popen('clip','w') as p:p.write(Path(r'%%1').stem)\" " /f
  3. exit/b
复制代码
回复

使用道具 举报

发表于 4 小时前 | 显示全部楼层
2012雨晨绿软 发表于 2026-8-26 16:52
加第三方程序会被用户诟病

用powershell,cmd,vbscript就没人说了?本质都是一个东西
回复

使用道具 举报

 楼主| 发表于 4 小时前 | 显示全部楼层
kedion 发表于 2026-8-26 12:21
powershell代码运行是有控制台窗口,那么把代码使用ps2exe添加-noConsole参数,变成不带控制台窗口的程序 ...

加第三方程序会被用户诟病

点评

用powershell,cmd,vbscript就没人说了?本质都是一个东西  详情 回复 发表于 4 小时前
回复

使用道具 举报

发表于 6 小时前 | 显示全部楼层
  1. Reg add "Hkcr\*\shell\CopyFileName" /v "SubCommands" /t REG_SZ /f
  2. Reg add "Hkcr\*\shell\CopyFileName" /v "MUIVerb" /t REG_SZ /d "复制文件名" /f
  3. Reg add "Hkcr\*\shell\CopyFileName" /v "icon" /t REG_SZ /d "imageres.dll,-5304" /f
  4. Reg add "Hkcr\*\shell\CopyFileName\Shell\文件名\Command" /ve /t REG_SZ /d "cmd.exe /c for %%%%i in (\"%%1\") do echo|set /p=%%%%~ni|clip" /f
  5. Reg add "Hkcr\*\shell\CopyFileName\Shell\文件名+后缀\Command" /ve /t REG_SZ /d "cmd.exe /c for %%%%i in (\"%%1\") do echo|set /p=%%%%~nxi|clip" /f
  6. Reg add "Hkcr\*\shell\CopyFileName\Shell\文件名完整路径\Command" /ve /t REG_SZ /d "cmd.exe /c for %%%%i in (\"%%1\") do echo|set /p=%%%%~dpnxi|clip" /f
复制代码


文件名
文件名+后缀
文件名完整路径
回复

使用道具 举报

发表于 9 小时前 | 显示全部楼层

powershell代码运行是有控制台窗口,那么把代码使用ps2exe添加-noConsole参数,变成不带控制台窗口的程序,由于powershell代码里面并没有创建任何gui,所以就变成了后台静默运行了?就是不知道这么操作是否可行,还有相关资源占用是否一样

点评

加第三方程序会被用户诟病  详情 回复 发表于 4 小时前
回复

使用道具 举报

 楼主| 发表于 9 小时前 | 显示全部楼层
回复

使用道具 举报

发表于 9 小时前 | 显示全部楼层
菜鸟不懂,帮顶一下
回复

使用道具 举报

发表于 10 小时前 | 显示全部楼层
  1. reg add "HKLM\SOFTWARE\Classes\*\shell\CopyFileName" /f /ve /t REG_SZ /d "复制文件名 (不含扩展名)"
  2. reg add "HKLM\SOFTWARE\Classes\*\shell\CopyFileName" /f /v "icon" /t REG_SZ /d "%%SystemRoot%%\System32\imageres.dll,-5304"
  3. reg add "HKLM\SOFTWARE\Classes\*\shell\CopyFileName\command" /f /ve /t REG_SZ /d "powershell.exe -NoProfile -Command Set-Clipboard ([System.IO.Path]::GetFileNameWithoutExtension('%%1'))"
复制代码

点评

会弹出窗口  详情 回复 发表于 9 小时前
回复

使用道具 举报

发表于 12 小时前 | 显示全部楼层
2012雨晨绿软 发表于 2026-8-25 19:37
真有你说的那么简单就好了,除非你花大价钱建立自己的数据库,不然你测试和修复让你怀疑人生 ...

AI写批处理确实很差,不过你可以说目标直接让他干事情,会比你让他把批处理语句改成C#效果好1000倍
回复

使用道具 举报

 楼主| 发表于 昨天 19:37 | 显示全部楼层
9zhmke 发表于 2026-8-25 19:19
谁说过AI写程序需要学习了,你叫他写不就可以了,为什么要你自己写?让他自己写程序,自己装环境,差什么 ...

真有你说的那么简单就好了,除非你花大价钱建立自己的数据库,不然你测试和修复让你怀疑人生

点评

AI写批处理确实很差,不过C#会超出你的想像,你可以说目标直接让他干事情,会比你让他把批处理语句改成C#效果好1000倍  详情 回复 发表于 12 小时前
回复

使用道具 举报

发表于 昨天 19:19 | 显示全部楼层
2012雨晨绿软 发表于 2026-8-25 17:49
过奖了,我没太多时间再去学习其它语言了,只要在CMD范围解决

谁说过AI写程序需要学习了,你叫他写不就可以了,为什么要你自己写?让他自己写程序,自己装环境,差什么叫他自己搞定,凡是他叫你干的,叫AI自己去网络调研后处理,反正发号施令就是了,就当他是来你这里打小工的博士生。

点评

真有你说的那么简单就好了,除非你花大价钱建立自己的数据库,不然你测试和修复让你怀疑人生  详情 回复 发表于 昨天 19:37
回复

使用道具 举报

发表于 昨天 18:03 | 显示全部楼层
2012雨晨绿软 发表于 2026-8-25 17:46
我右键有不少,这样我要写很多JS

彼此彼此,这些年积累了很多 *.bat, *.js, *.hta, *.py 等脚本文件,都放在一个共享目录下,供右键菜单和快捷方式调用,就是忍不了 '屏闪' ...
回复

使用道具 举报

 楼主| 发表于 昨天 17:49 | 显示全部楼层
9zhmke 发表于 2026-8-25 16:55
雨晨也是大神级人物了,难道就不能花点时间用AI把这些批处理和VBS改成c#或者C++版?反正也是各大自动编程软 ...

过奖了,我没太多时间再去学习其它语言了,只要在CMD范围解决

点评

谁说过AI写程序需要学习了,你叫他写不就可以了,为什么要你自己写?让他自己写程序,自己装环境,差什么叫他自己搞定,凡是他叫你干的,叫AI自己去网络调研后处理,反正发号施令就是了,就当他是来你这里打小工的博  详情 回复 发表于 昨天 19:19
回复

使用道具 举报

 楼主| 发表于 昨天 17:46 | 显示全部楼层
redyear2026 发表于 2026-8-25 16:14
在注册表右键菜单里挂代码,查多年应用历史沉淀的结果,基本上是用 wscript.exe 实现无窗口静默(没有 ...

我右键有不少,这样我要写很多JS

点评

彼此彼此,这些年积累了很多 *.bat, *.js, *.hta, *.py 等脚本文件,都放在一个共享目录下,供右键菜单和快捷方式调用,就是忍不了 '屏闪' ...  详情 回复 发表于 昨天 18:03
回复

使用道具 举报

发表于 昨天 16:55 | 显示全部楼层
雨晨也是大神级人物了,难道就不能花点时间用AI把这些批处理和VBS改成c#或者C++版?反正也是各大自动编程软件都有免费积分
试试用这几种,让他们把文件夹下的所有批处理或VBS改成C#,通过推广链接,各得一半积分:
腾讯WorkBuddy:https://www.workbuddy.cn/events/invite?inviteCode=dalrc4vl9yk
字节跳动的TraeWork:https://www.trae.cn/work-fission ... dium=friends_invite

点评

过奖了,我没太多时间再去学习其它语言了,只要在CMD范围解决  详情 回复 发表于 昨天 17:49
回复

使用道具 举报

发表于 昨天 16:14 | 显示全部楼层
本帖最后由 redyear2026 于 2026-8-25 16:47 编辑

    在注册表右键菜单里挂代码,查多年应用历史沉淀的结果,基本上是用 wscript.exe 实现无窗口静默(没有屏闪)运行 *.js 或 *.vbs 或 *.bat 脚本文件,wscript 是 vbs/jscript 的宿主环境之一,其中能用 vbs/jscript 完成的操作就不必调用其他脚本代码了,但因 win11 高版本对 vbs 有所阻拦,而 jscript 还可一路畅通,所以选择 wscript 启运 *.js 脚本文件便成为优选,此法可兼容 winXP,winPE,直到 win11 最新版。
    以下是示例代码,test.bat 创建注册表右键菜单(菜单名可在代码第2行中自定义),将所选文件名(剥离其扩展名,亦可兼容无扩展名文件)复制到剪贴板;test.js 是与之配用的 jscript 脚本文件,存放位置在 test.bat 第一行中被假定为 c:\tools\test.js  其真实路径可自定义。

test.bat(须在管理员cmd窗口中运行,或右键管理员身份运行)
  1. @echo off &set "jsF=c:\tools\test.js"
  2. reg add "HKCR\*\shell\_test_" /ve /t reg_sz /d "【复制纯文件名到剪贴板】" /f
  3. reg add "HKCR\*\shell\_test_\command" /ve /t reg_expand_sz /d "wscript /e:jscript \"%jsF%\" \"%%1\" " /f
  4. exit/b
复制代码

test.js
  1. WSH.createObject('wscript.shell').run('cmd /c for %f in ("'+WSH.arguments(0)+'") do set/p="%~nf"<nul|clip',0,false)
复制代码

点评

我右键有不少,这样我要写很多JS  详情 回复 发表于 昨天 17:46
回复

使用道具 举报

发表于 昨天 14:56 来自手机 | 显示全部楼层
谢谢分享
回复

使用道具 举报

发表于 昨天 14:26 | 显示全部楼层
本帖最后由 mxl 于 2026-8-25 14:29 编辑

PEcmd TEAM NAME -ext n=%%1|SET^ Clipboard=%%%%n%%%%
回复

使用道具 举报

发表于 昨天 14:25 | 显示全部楼层
来了解了解的
回复

使用道具 举报

发表于 昨天 13:14 | 显示全部楼层
来了解了解
回复

使用道具 举报

发表于 昨天 12:51 | 显示全部楼层
谢谢分享
回复

使用道具 举报

 楼主| 发表于 昨天 11:49 | 显示全部楼层

一样会弹窗口

点评

powershell代码运行是有控制台窗口,那么把代码使用ps2exe添加-noConsole参数,变成不带控制台窗口的程序,由于powershell代码里面并没有创建任何gui,所以就变成了后台静默运行了?就是不知道这么操作是否可行,还  详情 回复 发表于 9 小时前
回复

使用道具 举报

发表于 昨天 11:24 | 显示全部楼层
改用powershell?

点评

一样会弹窗口  详情 回复 发表于 昨天 11:49
回复

使用道具 举报

发表于 昨天 09:32 | 显示全部楼层
谢谢分享。
回复

使用道具 举报

 楼主| 发表于 昨天 09:25 | 显示全部楼层
nttwqz 发表于 2026-8-25 09:17
用其它语言写,比如au3、ahk、nsis、c、c++、nim……

大程序是CMD
回复

使用道具 举报

发表于 昨天 09:17 来自手机 | 显示全部楼层
用其它语言写,比如au3、ahk、nsis、c、c++、nim……

点评

大程序是CMD  详情 回复 发表于 昨天 09:25
回复

使用道具 举报

发表于 昨天 08:52 | 显示全部楼层
我是菜鸟,期待牛人的解答
回复

使用道具 举报

发表于 昨天 06:44 | 显示全部楼层
我不晓得
回复

使用道具 举报

 楼主| 发表于 前天 22:09 | 显示全部楼层
slore 发表于 2026-8-24 21:52
批处理本身就会弹cmd窗口吧。

用wscript.exe 调用 jscript,就没了。

那要写几个JS脚本,不太友好
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-26 21:28

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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