找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 54777|回复: 41

[注册表类] [已解决]右击资源管理器文件夹内空白处,新建txt,txt内直接包含剪贴板中的内容?

[复制链接]
发表于 2024-8-25 23:43:08 | 显示全部楼层 |阅读模式
本帖最后由 lforl 于 2024-10-23 21:34 编辑

不太想用Scripting.FileSystemObject。
想纯粹的cmd写入reg。
调用了第三方cmd:nircmd。


基于3楼 @Five66 大佬的方案,改造了右键菜单新建文本文档。
特点:完美隐藏了运行窗口;如果遇到重名自动加(1);新建后自动刷新当前文件夹;代码精简。

  1. Windows Registry Editor Version 5.00

  2. [HKEY_CLASSES_ROOT\.txt\ShellNew]
  3. "ItemName"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,\
  4.   6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,\
  5.   00,6e,00,6f,00,74,00,65,00,70,00,61,00,64,00,2e,00,65,00,78,00,65,00,2c,00,\
  6.   2d,00,34,00,37,00,30,00,00,00
  7. "Command"="nircmd exec hide cmd /c nircmd clipboard writefile "%1" &(nircmd wait 150)& (nircmd shellrefresh)"
  8. ;或者用powershell
  9. ;"Command"="nircmd exec hide powershell -c "nircmd clipboard writefile '%1' (nircmd wait 300) (nircmd shellrefresh)""

复制代码
基于6楼 @77七 大佬的方案,改造了右键菜单新建文本文档。
特点:直接在资源管理器的空白背景上右键菜单显示,很直观。不用额外控制,自动刷新显示新建文件。
  1. Windows Registry Editor Version 5.00

  2. [HKEY_CLASSES_ROOT\Directory\Background\shell\cliptotxt]
  3. @="生成txt来自剪贴板(&T)"
  4. "Icon"="imageres.dll,-5304"

  5. [HKEY_CLASSES_ROOT\Directory\Background\shell\cliptotxt\command]
  6. @="nircmd exec hide cmd /c nircmd clipboard addfile "新建文本.txt""
复制代码
感谢楼下几位热心的大佬帮助!总结为以上方案,以备忘和待有需要的有缘人获取。

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2024-8-26 00:19:40 | 显示全部楼层
只是点击鼠标就可以创建txt怕是得给文件资源管理器挂钩子了
发表于 2024-8-26 01:22:55 | 显示全部楼层
将下面的保存为ansi编码的reg文件
合并后原来的新建txt就会变成调用powershell ,然后读取粘贴板的文本数据并创建txt文件
注册表是在win7系统里修改后导出的,不知道高版本的系统能不能用

  1. Windows Registry Editor Version 5.00

  2. [HKEY_CLASSES_ROOT\.txt\ShellNew]
  3. "ItemName"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,\
  4.   6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,\
  5.   00,6e,00,6f,00,74,00,65,00,70,00,61,00,64,00,2e,00,65,00,78,00,65,00,2c,00,\
  6.   2d,00,34,00,37,00,30,00,00,00
  7. "Command"="powershell -WindowStyle Hidden -c "set-content -literalpath '%1' -value (Get-Clipboard -Format text)""
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1

查看全部评分

发表于 2024-8-26 01:34:14 | 显示全部楼层
哦,对了,得再给一个改回原来默认的

  1. Windows Registry Editor Version 5.00

  2. [HKEY_CLASSES_ROOT\.txt\ShellNew]
  3. "ItemName"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,\
  4.   6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,\
  5.   00,6e,00,6f,00,74,00,65,00,70,00,61,00,64,00,2e,00,65,00,78,00,65,00,2c,00,\
  6.   2d,00,34,00,37,00,30,00,00,00
  7. "NullFile"=""
复制代码
 楼主| 发表于 2024-8-26 06:56:57 | 显示全部楼层
将下面的保存为ansi编码的reg文件
合并后原来的新建txt就会变成调用powershell ,然后读取粘贴板的文本数据 ...
Five66 发表于 2024-8-26 01:22


感谢大佬,很棒!在win10完全实现了:从剪贴板内容新建文本文档。

有两个困惑的小地方:
1.cmd窗口未能真正的隐藏,还是出现一晃而过的画面。虽然感觉写了隐藏窗口的开关。
2.新建txt后,需要右键或者F5手动刷新资源管理器才会出现那个新建的txt。这点跟改造之前有点不一样。困惑中...
发表于 2024-8-26 11:48:01 | 显示全部楼层
用winclip
  1. Windows Registry Editor Version 5.00
  2. [HKEY_CLASSES_ROOT\Directory\Background\shell\cliptotxt]
  3. @="cliptotxt"
  4. "Icon"="imageres.dll,-5323"
  5. [HKEY_CLASSES_ROOT\Directory\Background\shell\cliptotxt\command]
  6. @="cmd.exe /q /c "if not exist "new.txt" (winclip -p |find /v "" > "new.txt"&exit) else for /l %%l in (2 1 10000) do if not exist "new(%%l).txt" (winclip -p |find /v "" > "new(%%l).txt"&exit)""
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

发表于 2024-8-26 12:47:08 | 显示全部楼层
回复 5# lforl


1:控制台程序是这样的,本身就有个窗口,得用无界面的图形程序来调用,或者专门弄一个无界面的图形程序出来,总之你可以试试用其他第三方
2:新建txt,win7下不用刷新就能看到,只是原来是新建之后会自动选择这个文件重命名那没了(文件一多就很难找到了),这个不知道怎么解决,不过你可以试试设置一下“资源管理器自动刷新”,总之因为是改成调用其他程序了,新建时自动选择文件重命名这个肯定会没了
3:还有修改时(3楼)和恢复时(4楼)漏了删掉原来的,
修改时(3楼)最后加上一行
"NullFile"=-
恢复时(4楼)最后加上一行
"Command"=-
发表于 2024-8-26 13:37:36 | 显示全部楼层
回复 5# lforl


    关于2再说一下,执行是需要时间的,窗口一晃而过之后,得等到它执行完后才会创建生成txt,因此你新建后或许不能立马就看见txt,而且由于用的是powershell,从启动直到执行完的时间还挺长的(相对于其他程序来说)
 楼主| 发表于 2024-8-26 14:22:10 | 显示全部楼层
3楼 @Five66
6楼 @77七
两位大佬的都非常好用。
我在你们的基础上,借助nirCMD,在你们的命令之前加入:nircmd exec hide
完美实现了窗口隐藏。不再出现一晃而过的命令窗口。
@Five66的方案上,我加上这个(等一会,刷新)也搞定了自动刷新问题:(nircmd wait 300) (nircmd shellrefresh)
@77七的方案不用刷新,自动会显示。

感谢两位大佬!
发表于 2024-8-26 15:01:14 | 显示全部楼层
回复 9# lforl


    你既然选择第三方了。那不如直接用它自己的命令就好了。不让绕那么大个弯啊
借用大佬的名言,一刀流解决问题
  1. nircmd.exe  clipboard writefile 新建文档.txt
复制代码
发表于 2024-8-26 15:53:33 | 显示全部楼层
本帖最后由 77七 于 2024-8-26 22:13 编辑

回复 10# ppll2030


   这个命令我试过,包括xclip cliptext winclip,都会把文本的换行符改为LF,其中xclip和winclip支持管道,其它的不知道,不会用,最后我选用了winclip -p ,再用 | find处理下就正常了。
我说的有误,
更正:请看下文。。
发表于 2024-8-26 16:20:15 | 显示全部楼层
回复 1# lforl


   楼主把代码改成这样,其实就和我的代码没什么关系了
 楼主| 发表于 2024-8-26 19:28:45 | 显示全部楼层
本帖最后由 lforl 于 2024-8-26 19:32 编辑
回复  lforl


   楼主把代码改成这样,其实就和我的代码没什么关系了
77七 发表于 2024-8-26 16:20



哈哈,有,启发很大。你那判断是否重复文件名很好!谢谢大佬加持!
主要考虑到nircmd一引入,就可以大幅度简化代码。
并且这个非常小,效率很高,有他,在各种常见场景,几乎就不需要用其他第三方了。
你说有换行符被改变问题,已经非常专业,目前我的应用场景暂时触及不到差别,你是否考虑给nirsoft.net发个邮件。作者一直保持更新的。也许一个邮件就可以将它完美化。
发表于 2024-8-26 20:13:04 | 显示全部楼层
回复 11# 77七


    特意下了个2.86最新版,貌似不会啊。是不是你的版本太老了
发表于 2024-8-26 20:40:25 | 显示全部楼层
回复 14# ppll2030


     
我这里是LF。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 19:43 , Processed in 0.026191 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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