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

[原创] 批处理、VBS/JS写入剪切板改进

大家先看此贴:
zqz版主的批处理、VBS剪贴板操作专题
http://bbs.bathome.net/viewthread.php?tid=8329&fromuid=25503

注意到原文的这部分:
  2、将文本写到剪贴板


其中:
  1. mshta.exe "javascript:clipboardData.setData('text', 'www.bathome.net');close();"
复制代码
上面这种是用批处理写入文本到剪贴板
  1. Set ws = CreateObject("WScript.Shell")
  2. ws.run "mshta ""javascript:clipboardData.setData('text', 'www.bathome.net');close();""", 0, true
  3. '最好设置等待标志为true,等待操作完成,保证后续语句能得到正确结果
  4. WScript.Echo CreateObject("htmlfile").parentWindow.clipboardData.getData("text")
复制代码
上面这种是用VBS写入文本到剪贴板

我先来不说这两种方法那里不妥先,大家先来测试下面的代码:
d盘下放一文本test.txt:
  1. lineOne
  2. lineTwo
  3. lineThree
复制代码
然后运行下面的JS代码
  1. var wsh = new ActiveXObject("WScript.Shell");
  2. var fso = new ActiveXObject("Scripting.FileSystemObject")
  3. var f = fso.OpenTextFile("d:\\test.txt", 1, false);
  4. var str = f.ReadAll();
  5. f.Close();
  6. wsh.run("mshta \"javascript:clipboardData.setData('text','" + str + "');close();\"",0);
  7. wsh = null;
  8. fso = null;
  9. f = null;
复制代码
运行结束说明已成功写入剪贴板了(有的人的电脑在运行过程中会出现提示,运行即可)

然后大家随便建一个记事本,粘贴,看有什么情况发生。
如果没有其他意外的话,你得到的文本应该是这样的:
  1. lineOnelineTwolineThree
复制代码
没错,就是粘贴后没有换行的。现在我稍微把代码改进了:
  1. var wsh = new ActiveXObject("WScript.Shell");
  2. var fso = new ActiveXObject("Scripting.FileSystemObject")
  3. var f = fso.OpenTextFile("d:\\test.txt", 1, false);
  4. var str = new String(f.ReadAll());
  5. f.Close();
  6. wsh.run("mshta \"javascript:clipboardData.setData('text','" + str.replace(/\n/g,"\\r\\n") + "');close();\"",0);
  7. wsh = null;
  8. fso = null;
  9. f = null;
复制代码
现在试试如何?
---学无止境---

返回列表