标题: [文本处理] [已解决]批处理如何在空白处右键“新建菜单”中加入根据“剪切板”内容新建文本? [打印本页]
作者: zhangop9 时间: 2011-12-19 09:30 标题: [已解决]批处理如何在空白处右键“新建菜单”中加入根据“剪切板”内容新建文本?
想在空白处右键“新建菜单”中加入根据“剪切板”内容新建文本文件。
以下是在所有文件右键可供参考- Windows Registry Editor Version 5.00
- ; 保存剪贴板内容_所有文件右键_添加TXT.reg
- [HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\SaveClipText]
- @="剪贴板@TXT(&B)"
-
- [HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\SaveClipText\command]
- @="mshta \"javascript:try{new ActiveXObject('Scripting.FileSystemObject').OpenTextFile(new Date().getTime()+'.txt',2,true).Write(clipboardData.getData('text'));}catch(e){alert('non-text');}close();\""
复制代码
作者: 920168 时间: 2011-12-19 09:52
第三方工具下载:winclip.exe http://www.bathome.net/thread-1766-1-1.html- echo off
- for /f "usebackq" %%i in (`winclip -p`) do cd.>>%%i.txt
- pause
复制代码
作者: slore 时间: 2011-12-19 10:06
能是能做。。。加个注册表加个command键就行了。
但是这种方法不能显示2种同扩展名的选择
就是你右键新建->txt全部都是从剪切板内容到新建文本文件
没有原来的建立空白的新建文本文档了。
如果你使用新扩展名那就很简单了。
作者: zhangop9 时间: 2011-12-19 10:19
vbs、reg、bat、这几个是最常用的。就要这几个
作者: slore 时间: 2011-12-19 11:58
- REGEDIT4
-
- [HKEY_CLASSES_ROOT\.bat\ShellNew]
- "command"="mshta vbscript:Execute(\"CreateObject(\"\"Scripting.FileSystemObject\"\").OpenTextFile(\"\"%2\"\",2,true).Write(clipboardData.getData(\"\"text\"\")):close\")"
- [HKEY_CLASSES_ROOT\.reg\ShellNew]
- "command"="mshta vbscript:Execute(\"CreateObject(\"\"Scripting.FileSystemObject\"\").OpenTextFile(\"\"%2\"\",2,true).Write(clipboardData.getData(\"\"text\"\")):close\")"
- [HKEY_CLASSES_ROOT\.vbs\ShellNew]
- "command"="mshta vbscript:Execute(\"CreateObject(\"\"Scripting.FileSystemObject\"\").OpenTextFile(\"\"%2\"\",2,true).Write(clipboardData.getData(\"\"text\"\")):close\")"
复制代码
但是不建议mshta,感觉运行有点卡。这个就是思路自己找个3方也好别的命令也好,%2是文件名全路径名
作者: slore 时间: 2011-12-19 12:00
这里没有判断剪切板是否为空,如果为空就错了。
作者: zhangop9 时间: 2011-12-19 14:11
本帖最后由 zhangop9 于 2011-12-19 14:20 编辑
文件名能不能用文本中的前三字符来写入了,如果说剪切板中的内容是- REGEDIT4
-
- [HKEY_CLASSES_ROOT\.bat\ShellNew]
- "command"="mshta vbscript:Execute(\"CreateObject(\"\"Scripting.FileSystemObject\"\").OpenTextFile(\"\"%2\"\",2,true).Write(clipboardData.getData(\"\"text\"\")):close\")"
- [HKEY_CLASSES_ROOT\.reg\ShellNew]
- "command"="mshta vbscript:Execute(\"CreateObject(\"\"Scripting.FileSystemObject\"\").OpenTextFile(\"\"%2\"\",2,true).Write(clipboardData.getData(\"\"text\"\")):close\")"
- [HKEY_CLASSES_ROOT\.vbs\ShellNew]
- "command"="mshta vbscript:Execute(\"CreateObject(\"\"Scripting.FileSystemObject\"\").OpenTextFile(\"\"%2\"\",2,true).Write(clipboardData.getData(\"\"text\"\")):close\")"
复制代码
那么生成的文件名称就是“regedi.reg”;如果是中文就是剪切板中的前三个字如“新建名.bat”
作者: slore 时间: 2011-12-19 15:12
command键你可以指定在新建的时候做一些处理,直接把代码写到注册表里面有点乱,因为比较长。
你自己写个命令去调用吧。
1.从%2中获取文件要存储的路径
2.读取剪切板,去前3个字符
3.写入文件
不建议用bat,毕竟前3个字符要是有特殊字符还要处理很麻烦。
作者: zhangop9 时间: 2011-12-19 20:12
谢谢已经很好用了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |