Board logo

标题: [文本处理] [已解决]nircmd随机读取一行文本? [打印本页]

作者: 我来了    时间: 2013-4-9 09:26     标题: [已解决]nircmd随机读取一行文本?

Copy the content of info1.txt (simple text file) to the clipboard          nircmd.exe clipboard readfile "c:\My Files\info1.txt"

看到nircmd中有一条帮助,来了兴趣,不知能否做到让其,随机读取一行文本?
作者: yu2n    时间: 2013-4-9 16:09

以下内容来自网络:
  1. '用vbs实现随机读取文件的一行内容的脚本
  2. '发布:dxy 字体:[增加 减小] 类型:转载
  3. '复制代码 代码如下:
  4. randomize
  5. set fso = CreateObject("Scripting.Filesystemobject")
  6. set a = CreateObject("Scripting.Dictionary")
  7. set file = fso.OpenTextFile("a.txt")
  8. do while file.AtendofStream<>true
  9. m = m + 1
  10. a.add m,file.readline
  11. loop
  12. file.close
  13. h=int(rnd * m)
  14. msgbox "第" & h & "行: " & a(h) ,4096,"随机内容"
复制代码

  1. REM 用vbs遍历文件并随机显示的脚本
  2. REM 发布:dxy 字体:[增加 减小] 类型:转载
  3. set ws=createobject("wscript.shell")
  4. set fso=createobject("scripting.filesystemobject")
  5. set folder=fso.getfolder(ws.currentdirectory)
  6. set files=folder.files
  7. for each file in files
  8. d=d & file.name & ","
  9. next
  10. Randomize
  11. Do Until D = ""
  12. s = Split(D, ",")
  13. M = UBound(s)
  14. h = Int(Rnd * M)
  15. N = s(h)
  16. sn = sn & N & vbcr
  17. D = Replace( D, N & ",", "",1,1)
  18. Loop
  19. MsgBox sn
复制代码

作者: 我来了    时间: 2013-4-9 16:43

以下内容来自网络:
yu2n 发表于 2013-4-9 16:09


那是不是 nircmd没法搞成了呢?
上面的最后一句话,弹框:

能不能结合,下面这句话再改改:换成将读到的内存放入剪贴板。(或直接改成)
将剪切板中内容添加到文本info1.txt中
nircmd.exe clipboard addfile "c:\My Files\info1.txt"

作者: 我来了    时间: 2013-4-9 17:38

这样写
G:\PowerPro_4.9n7\配置文件夹\nircmd.exe clipboard readfile a(h) ,4096
不行呢?
作者: 我来了    时间: 2013-4-15 20:25

告诉你们个好消息,通过搜索,我发现一个大才的博客。http://hi.baidu.com/hyhoekey/ite ... 68a2618cc5827ebd934
通过交流,俺修改了下。终于解决了。
作者: 我来了    时间: 2013-4-15 20:26

本帖最后由 我来了 于 2013-4-15 22:08 编辑

完整 的代码是这样的:
randomize
set fso = CreateObject("Scripting.Filesystemobject")
set a = CreateObject("Scripting.Dictionary")
set file = fso.OpenTextFile("C:\Documents and Settings\Administrator\桌面\3.txt")
do while file.AtendofStream<>true
        m = m + 1
        a.add m,file.readline
loop
file.close
h=int(rnd * m)

WshShell.run "G:\PowerPro_4.9n7\配置文件夹\nircmd.exe clipboard set " & chr(34) & a(h) & chr(34)

这样写会报错的。
    脚本  :     C:\Documents and Settings\Administrator\桌面\新建 文本.vbs
    行:        13
    字符:       2
    错误:       缺少对象: 'WshShell'
    代码:       800A01A8
    源:        Microsoft VBScript 运行时错误

对VBS压根不入流,我猜测可能前面少了定义

以 WshShell google搜索,专门找运行之类的东西,结果换成下面的,就OK了。





必须搞成这样:
randomize
set fso = CreateObject("Scripting.Filesystemobject")
set a = CreateObject("Scripting.Dictionary")
set file = fso.OpenTextFile("C:\Documents and Settings\Administrator\桌面\3.txt")
do while file.AtendofStream<>true
        m = m + 1
        a.add m,file.readline
loop
file.close
h=int(rnd * m)

CreateObject("WScript.Shell").Run "G:\PowerPro_4.9n7\配置文件夹\nircmd.exe clipboard set " & chr(34) & a(h) & chr(34)

作者: 我来了    时间: 2013-4-15 20:28

这样当我用神器PowerPro定义一个热键后,就能随时随机读取一行到剪贴板了。

这样,我再把这个加进去。就更好用了。




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