[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 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\""
复制代码
感谢楼下几位热心的大佬帮助!总结为以上方案,以备忘和待有需要的有缘人获取。
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

只是点击鼠标就可以创建txt怕是得给文件资源管理器挂钩子了

TOP

将下面的保存为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

评分人数

TOP

哦,对了,得再给一个改回原来默认的
  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"=""
复制代码

TOP

将下面的保存为ansi编码的reg文件
合并后原来的新建txt就会变成调用powershell ,然后读取粘贴板的文本数据 ...
Five66 发表于 2024-8-26 01:22


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

有两个困惑的小地方:
1.cmd窗口未能真正的隐藏,还是出现一晃而过的画面。虽然感觉写了隐藏窗口的开关。
2.新建txt后,需要右键或者F5手动刷新资源管理器才会出现那个新建的txt。这点跟改造之前有点不一样。困惑中...

TOP

用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

评分人数

bat小白,请多指教!谢谢!

TOP

回复 5# lforl


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

TOP

回复 5# lforl


    关于2再说一下,执行是需要时间的,窗口一晃而过之后,得等到它执行完后才会创建生成txt,因此你新建后或许不能立马就看见txt,而且由于用的是powershell,从启动直到执行完的时间还挺长的(相对于其他程序来说)

TOP

3楼 @Five66
6楼 @77七
两位大佬的都非常好用。
我在你们的基础上,借助nirCMD,在你们的命令之前加入:nircmd exec hide
完美实现了窗口隐藏。不再出现一晃而过的命令窗口。
@Five66的方案上,我加上这个(等一会,刷新)也搞定了自动刷新问题:(nircmd wait 300) (nircmd shellrefresh)
@77七的方案不用刷新,自动会显示。

感谢两位大佬!

TOP

回复 9# lforl


    你既然选择第三方了。那不如直接用它自己的命令就好了。不让绕那么大个弯啊
借用大佬的名言,一刀流解决问题
  1. nircmd.exe  clipboard writefile 新建文档.txt
复制代码

TOP

本帖最后由 77七 于 2024-8-26 22:13 编辑

回复 10# ppll2030


   这个命令我试过,包括xclip cliptext winclip,都会把文本的换行符改为LF,其中xclip和winclip支持管道,其它的不知道,不会用,最后我选用了winclip -p ,再用 | find处理下就正常了。
我说的有误,
更正:请看下文。。
bat小白,请多指教!谢谢!

TOP

回复 1# lforl


   楼主把代码改成这样,其实就和我的代码没什么关系了
bat小白,请多指教!谢谢!

TOP

本帖最后由 lforl 于 2024-8-26 19:32 编辑
回复  lforl


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



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

TOP

回复 11# 77七


    特意下了个2.86最新版,貌似不会啊。是不是你的版本太老了

TOP

回复 14# ppll2030


     
我这里是LF。
bat小白,请多指教!谢谢!

TOP

返回列表