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

存放网址的文件为a.txt,生成新文件b.txt。代码保存为test.bat与a.txt放在一起
  1. @echo off&setlocal enabledelayedexpansion
  2. set N=12
  3. for /f "delims=" %%a in (a.txt) do (
  4.   set /a L+=1
  5.   set "_!L!=%%a"
  6. )
  7. if %N% gtr %L% set N=%L%
  8. (for /l %%a in (1 1 %N%) do call :Loop)>b.txt
  9. goto :eof
  10. :Loop
  11. set /a r=%random% %% L + 1
  12. if defined .%r% (goto :Loop) else set .%r%=1&echo,!_%r%!
复制代码
vbs,只是练习。。。
  1. N = 6
  2. Set FSO = CreateObject("Scripting.FileSystemObject")
  3. Text = FSO.OpenTextFile("a.txt",1).ReadAll
  4. Arr = Split(Text,vbCrLf)
  5. ReDim B(Ubound(Arr))
  6. If N > UBound(Arr) + 1 Then N = UBound(Arr) + 1
  7. Do Until N = i
  8.    Randomize
  9.    r = Int((Ubound(Arr) + 1)* Rnd)
  10.    If B(r) = "" Then
  11.       Str = Str & Arr(r) & vbCrLf
  12.       B(r) = "1" : i = i + 1
  13.    End If
  14. Loop
  15. FSO.OpenTextFile("b.txt",2,True).Write Str
  16. MsgBox "OK"
复制代码

TOP

回复 6# batman

感谢老大指点!
  1. Set FSO = CreateObject("Scripting.FileSystemObject")
  2. Set File = FSO.OpenTextFile("a.txt",1)
  3. Do Until File.AtEndOfStream
  4.    ReDim Preserve Arr(i)
  5.    Arr(i) = File.ReadLine
  6.    i = i + 1
  7. Loop
  8. Do Until N = 6
  9.    Randomize
  10.    r = Int((UBound(Arr) + 1) * Rnd)
  11.    If InStr(Str,Arr(r)) = 0 Then
  12.       Str = Str & Arr(r) & vbCrLf
  13.       N = N + 1
  14.    End If
  15. Loop
  16. FSO.OpenTextFile("b.txt",2,True).Write Str
  17. MsgBox "OK"
复制代码

TOP

返回列表