如何使用批处理文件随机重新排列文本文件中的行

com*_*e22 3 random text file batch-file

我正在创建一个随机剥离不同MAC地址的代码,但无法弄清楚如何执行此操作.我对如何处理这个问题的想法是使用这个脚本随机化或重新排列文本文件中MAC地址的顺序,但我无法弄清楚如何使用批处理文件执行此操作.这将如何工作,它将读取"maclist.txt",然后使用随机顺序"maclist_temp.txt"创建一个新的临时文件,该文件将是重新排列的文件.然后,它将按顺序提取此随机文件.

我曾尝试使用Google并在网上搜索,但我没有找到任何有用的东西.我仍在积极寻找,但任何建议都非常有用.

像提取和删除随机行然后添加到底部这样简单的事情可能会起作用.虽然随机化会更好,但我想保留原始列表.就像是:

  1. 制作maclist.txt的临时副本,名为maclist_temp.txt
  2. 取一个随机MAC地址,将其从maclist_temp.txt中删除
  3. 读到底部

这就是我想要的,但欢迎任何建议.

Dal*_*ale 6

您可以尝试这个批处理文件来帮助您洗牌maclist.txt.批处理代码的用法是

C:\> type list.txt | shuffle.bat > maclist_temp.txt
Run Code Online (Sandbox Code Playgroud)

发出此命令后,maclist_temp.txt将包含一个随机的MAC地址列表.

希望这可以帮助.


fox*_*ive 5

这是一种更简单的随机化文件的方法,不需要临时文件。您甚至可以重复使用相同的输入文件名。

限制是:空白行和以 开头的行将;被跳过,以 开头的行将删除=所有前导=符号并将^字符加倍。

@echo off
setlocal
for /f "delims=" %%a in (maclist.txt) do call set "$$%%random%%=%%a"
(for /f "tokens=1,* delims==" %%a in ('set $$') do echo(%%b)>newmaclist.txt
endlocal
Run Code Online (Sandbox Code Playgroud)