找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25974|回复: 6

[文本处理] [已解决]nircmd随机读取一行文本?

[复制链接]
发表于 2013-4-9 09:26:04 | 显示全部楼层 |阅读模式
Copy the content of info1.txt (simple text file) to the clipboard          nircmd.exe clipboard readfile "c:\My Files\info1.txt"

看到nircmd中有一条帮助,来了兴趣,不知能否做到让其,随机读取一行文本?

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2013-4-9 16:09:47 | 显示全部楼层
以下内容来自网络:
  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
复制代码

评分

参与人数 1技术 +1 收起 理由
我来了 + 1 好样的,感谢。

查看全部评分

 楼主| 发表于 2013-4-9 16:43:35 | 显示全部楼层
以下内容来自网络:
yu2n 发表于 2013-4-9 16:09


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

能不能结合,下面这句话再改改:换成将读到的内存放入剪贴板。(或直接改成)
将剪切板中内容添加到文本info1.txt中
nircmd.exe clipboard addfile "c:\My Files\info1.txt"
 楼主| 发表于 2013-4-9 17:38:57 | 显示全部楼层
这样写
G:\PowerPro_4.9n7\配置文件夹\nircmd.exe clipboard readfile a(h) ,4096
不行呢?
 楼主| 发表于 2013-4-15 20:25:27 | 显示全部楼层
告诉你们个好消息,通过搜索,我发现一个大才的博客。http://hi.baidu.com/hyhoekey/ite ... 68a2618cc5827ebd934
通过交流,俺修改了下。终于解决了。
 楼主| 发表于 2013-4-15 20:26:32 | 显示全部楼层
本帖最后由 我来了 于 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)

这样写会报错的。
    脚本  :&#160;    C:\Documents and Settings\Administrator\桌面\新建 文本.vbs
    行:&#160;       13
    字符:&#160;      2
    错误:&#160;      缺少对象: 'WshShell'
    代码:&#160;      800A01A8
    源: &#160;      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:18 | 显示全部楼层
这样当我用神器PowerPro定义一个热键后,就能随时随机读取一行到剪贴板了。

这样,我再把这个加进去。就更好用了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 06:21 , Processed in 0.028548 second(s), 13 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表