Board logo

标题: [系统增强] 批处理拷贝文件(夹)到剪贴板 [打印本页]

作者: rat    时间: 2009-4-18 15:09     标题: 批处理拷贝文件(夹)到剪贴板

  1. @echo off
  2. call :cf2cb "%comspec%"
  3. exit /b
  4. ::CopyFile2ClipBoard
  5. :cf2cb
  6. setlocal
  7. set "f=%~1"
  8. set "f=%f:\=/%"
  9. mshta "javascript:'<script language="vbscript">moveto screen.width,0:document.write "^<img"+chr(32)+"src=""%f%""^>":with document.body.createControlRange:.add document.getElementsByTagName("img")(0):.execCommand "Copy":end with:close</script>'"
  10. goto :eof
复制代码
————————————————————————————————————

Update 2009-4-20 17:45
修正路径中含空格不能复制的bug;
发现也可复制文件夹(包括里面的文件(夹))。
  1. @echo off
  2. call :c2cb "c:\a\a a"
  3. exit /b
  4. ::Copy2ClipBoard
  5. :c2cb
  6. setlocal
  7. set "f=%~1"
  8. set "f=%f:\=/%"
  9. set "f=%f: =r%"
  10. mshta "javascript:'<script language="vbscript">moveto screen.width,0:document.write Replace("^<imgrid=""x""rsrc=""%f%""^>","r",chr(32)):with document.body.createControlRange:.add x:.execCommand "Copy":end with:close</script>'"
  11. goto :eof
复制代码
——————————————————————————————————
Update 2009-4-24 14:20
优化了代码(参考7L代码)
  1. @echo off
  2. call :c2cb "%ProgramFiles%\microsoft frontpage"
  3. exit /b
  4. ::Copy2ClipBoard
  5. :c2cb
  6. setlocal
  7. set "f=%~1"
  8. set "f=%f:\\=\%"
  9. set "f=%f:\=\\%"
  10. mshta "javascript:moveTo(screen.width,0);document.write('<img id=\'x\' src=\'%f%\'>');i=document.body.createControlRange();i.add(x);i.execCommand('copy');close()"
  11. goto :eof
复制代码

作者: 随风    时间: 2009-4-18 15:39

牛!怎么实现的?那一堆代码根本看不懂。。
作者: defanive    时间: 2009-4-18 15:48

调用万能的JS。。。

话说VBS不行么,HTA有clipboard对象的吧。。。
作者: rat    时间: 2009-4-18 15:54     标题: 回复 2L 3L 的帖子

http://hi.baidu.com/ycosxhack/bl ... d0a35fd0090636.html
作者: zqz0012005    时间: 2009-4-20 18:09

没必要再用vbscript吧。
作者: rat    时间: 2009-4-20 18:14     标题: 回复 5楼 的帖子

比较熟悉vbscript,没试过javascript,兄试试?
作者: zqz0012005    时间: 2009-4-21 17:27

我对html和javascript也没怎么研究
  1. @echo off
  2. call :cf2cb "%ProgramFiles%\microsoft frontpage"
  3. exit /b
  4. ::CopyFile2ClipBoard
  5. :cf2cb
  6. setlocal enableDelayedExpansion
  7. set "f=%~1"
  8. set "f=%f:\=\\%"
  9. set "f=!f: =%%20!"
  10. mshta "javascript:moveTo(screen.width,0);document.write('<img src=\'%f%\'>');i=document.body.createControlRange();i.add(document.getElementsByTagName('img')[0]);i.execCommand('copy');close();"
  11. goto :eof
复制代码

作者: rat    时间: 2009-4-24 14:08     标题: 回复 7楼 的帖子

兄的代码可以不用替换空格
作者: zhangop9    时间: 2021-1-14 15:19

批处理拷贝文件(夹)到剪贴板




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2