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

[文本处理] [已解决]批处理如何在空白处右键“新建菜单”中加入根据“剪切板”内容新建文本?

想在空白处右键“新建菜单”中加入根据“剪切板”内容新建文本文件。
以下是在所有文件右键可供参考
  1. Windows Registry Editor Version 5.00
  2. ; 保存剪贴板内容_所有文件右键_添加TXT.reg
  3. [HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\SaveClipText]
  4. @="剪贴板@TXT(&B)"
  5. [HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\SaveClipText\command]
  6. @="mshta \"javascript:try{new ActiveXObject('Scripting.FileSystemObject').OpenTextFile(new Date().getTime()+'.txt',2,true).Write(clipboardData.getData('text'));}catch(e){alert('non-text');}close();\""
复制代码
1

评分人数

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

第三方工具下载:winclip.exe http://www.bathome.net/thread-1766-1-1.html
  1. echo off
  2. for /f "usebackq" %%i in (`winclip -p`) do cd.>>%%i.txt
  3. pause
复制代码
1

评分人数

    • CrLf: 乐于助人技术 + 1
http://www.diecasting86.com

TOP

能是能做。。。加个注册表加个command键就行了。

但是这种方法不能显示2种同扩展名的选择

就是你右键新建->txt全部都是从剪切板内容到新建文本文件

没有原来的建立空白的新建文本文档了。

如果你使用新扩展名那就很简单了。

TOP

vbs、reg、bat、这几个是最常用的。就要这几个

TOP

  1. REGEDIT4
  2. [HKEY_CLASSES_ROOT\.bat\ShellNew]
  3. "command"="mshta vbscript:Execute(\"CreateObject(\"\"Scripting.FileSystemObject\"\").OpenTextFile(\"\"%2\"\",2,true).Write(clipboardData.getData(\"\"text\"\")):close\")"
  4. [HKEY_CLASSES_ROOT\.reg\ShellNew]
  5. "command"="mshta vbscript:Execute(\"CreateObject(\"\"Scripting.FileSystemObject\"\").OpenTextFile(\"\"%2\"\",2,true).Write(clipboardData.getData(\"\"text\"\")):close\")"
  6. [HKEY_CLASSES_ROOT\.vbs\ShellNew]
  7. "command"="mshta vbscript:Execute(\"CreateObject(\"\"Scripting.FileSystemObject\"\").OpenTextFile(\"\"%2\"\",2,true).Write(clipboardData.getData(\"\"text\"\")):close\")"
复制代码
但是不建议mshta,感觉运行有点卡。这个就是思路自己找个3方也好别的命令也好,%2是文件名全路径名
1

评分人数

    • CrLf: 乐于助人技术 + 1

TOP

这里没有判断剪切板是否为空,如果为空就错了。

TOP

本帖最后由 zhangop9 于 2011-12-19 14:20 编辑

文件名能不能用文本中的前三字符来写入了,如果说剪切板中的内容是
  1. REGEDIT4
  2. [HKEY_CLASSES_ROOT\.bat\ShellNew]
  3. "command"="mshta vbscript:Execute(\"CreateObject(\"\"Scripting.FileSystemObject\"\").OpenTextFile(\"\"%2\"\",2,true).Write(clipboardData.getData(\"\"text\"\")):close\")"
  4. [HKEY_CLASSES_ROOT\.reg\ShellNew]
  5. "command"="mshta vbscript:Execute(\"CreateObject(\"\"Scripting.FileSystemObject\"\").OpenTextFile(\"\"%2\"\",2,true).Write(clipboardData.getData(\"\"text\"\")):close\")"
  6. [HKEY_CLASSES_ROOT\.vbs\ShellNew]
  7. "command"="mshta vbscript:Execute(\"CreateObject(\"\"Scripting.FileSystemObject\"\").OpenTextFile(\"\"%2\"\",2,true).Write(clipboardData.getData(\"\"text\"\")):close\")"
复制代码
那么生成的文件名称就是“regedi.reg”;如果是中文就是剪切板中的前三个字如“新建名.bat”
1

评分人数

    • CrLf: 乐于助人技术 + 1

TOP

command键你可以指定在新建的时候做一些处理,直接把代码写到注册表里面有点乱,因为比较长。

你自己写个命令去调用吧。

1.从%2中获取文件要存储的路径
2.读取剪切板,去前3个字符
3.写入文件

不建议用bat,毕竟前3个字符要是有特殊字符还要处理很麻烦。
1

评分人数

    • CrLf: 乐于助人PB + 5

TOP

谢谢已经很好用了

TOP

返回列表