大家先看此贴:
zqz版主的批处理、VBS剪贴板操作专题
http://bbs.bathome.net/viewthread.php?tid=8329&fromuid=25503
注意到原文的这部分:
其中:- mshta.exe "javascript:clipboardData.setData('text', 'www.bathome.net');close();"
复制代码 上面这种是用批处理写入文本到剪贴板- Set ws = CreateObject("WScript.Shell")
- ws.run "mshta ""javascript:clipboardData.setData('text', 'www.bathome.net');close();""", 0, true
- '最好设置等待标志为true,等待操作完成,保证后续语句能得到正确结果
- WScript.Echo CreateObject("htmlfile").parentWindow.clipboardData.getData("text")
复制代码 上面这种是用VBS写入文本到剪贴板
我先来不说这两种方法那里不妥先,大家先来测试下面的代码:
d盘下放一文本test.txt:- lineOne
- lineTwo
- lineThree
复制代码 然后运行下面的JS代码- var wsh = new ActiveXObject("WScript.Shell");
- var fso = new ActiveXObject("Scripting.FileSystemObject")
- var f = fso.OpenTextFile("d:\\test.txt", 1, false);
- var str = f.ReadAll();
- f.Close();
- wsh.run("mshta \"javascript:clipboardData.setData('text','" + str + "');close();\"",0);
- wsh = null;
- fso = null;
- f = null;
复制代码 运行结束说明已成功写入剪贴板了(有的人的电脑在运行过程中会出现提示,运行即可)
然后大家随便建一个记事本,粘贴,看有什么情况发生。
如果没有其他意外的话,你得到的文本应该是这样的:复制代码 没错,就是粘贴后没有换行的。现在我稍微把代码改进了:- var wsh = new ActiveXObject("WScript.Shell");
- var fso = new ActiveXObject("Scripting.FileSystemObject")
- var f = fso.OpenTextFile("d:\\test.txt", 1, false);
- var str = new String(f.ReadAll());
- f.Close();
- wsh.run("mshta \"javascript:clipboardData.setData('text','" + str.replace(/\n/g,"\\r\\n") + "');close();\"",0);
- wsh = null;
- fso = null;
- f = null;
复制代码 现在试试如何? |