[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
vbs:
  1. Randomize()
  2. For i=1 To 2
  3. r = Rnd*a.count\1
  4.         msgbox ((a.Items())(r))
  5. a.Remove(r)
  6. Next
复制代码
话说 js 操作数组元素或者对象属性比起 vbs 方便得多...

我更喜欢用 gnu,不过 sort 的 -R 选项得看版本:
  1. gnu_sort -R "D:\OperaZ_Y\英语谚语.txt" | sed "1,2!d"
复制代码
powershell 也是很好的选择,尽管它的设计用途并不是处理文本:
  1. get-content "D:\OperaZ_Y\英语谚语.txt" | get-random -count 2
复制代码

TOP

噢,发现理解错了....................

TOP

本帖最后由 CrLf 于 2014-4-15 17:49 编辑

那更简单了:
  1. randomize
  2. set fso = CreateObject("Scripting.Filesystemobject")
  3. set file = fso.OpenTextFile("英语谚语.txt")
  4. text = file.ReadAll
  5. a = Split(text,vbCrLf)
  6. file.Close
  7. h = (rnd*UBound(a)\2)*2
  8. str = a(h) & vbCrLf & a(h+1)
  9. 'msgbox str
  10. setClip str
  11. Set WshShell= WScript.CreateObject("WScript.Shell")
  12. WshShell.SendKeys "^v"
  13. WshShell.SendKeys "^{ENTER}"
  14. Sub setClip(str)
  15. Dim Form, TextBox
  16. Set Form = CreateObject("Forms.Form.1")
  17. Set TextBox = Form.Controls.Add("Forms.TextBox.1").Object
  18. TextBox.MultiLine = True
  19. TextBox.Text = str
  20. TextBox.SelStart = 0
  21. TextBox.SelLength = TextBox.TextLength
  22. TextBox.Copy
  23. End Sub
复制代码
setClip 修改自 demon 的博客里的内容,这样就不需要第三方支持了(如果 com 可以不算的话)

TOP

话说 opera 不能用 userscript 操作 dom 吗?还要这么复制粘贴

TOP

回复 8# 我来了


    多写了个 r,已修改。
    setClip 是 vbs 脚本里写的过程,不是外部命令

TOP

回复 10# 我来了


    原来以为是随机提取两行,你的意思不是随机提取相邻的中英文各一行吗?

TOP

回复 11# 我来了


    WIN X64 企业版没有 Forms.Form.1 ?那你还是用 nircmd 吧,或者学一下 au3/autohotkey,实现这个既精确又简单

TOP

返回列表