Мне нужен генератор случайных детских имен в пакетном файле

#batch-file

Вопрос:

У меня есть файл с 18239 именами, я хотел бы получить пакетный файл, который выбирает случайное имя из этого файла, если я нажму enter. Так что это было бы похоже на «У тебя есть…», нажмите «Аманда». Я осмотрел все вокруг, и, похоже, никто не знает, как заставить его выбирать из случайной строки.

Ответ №1:

 @echo off
cls
:start
cls
Set _File=names.txt
Set /a _Lines=0
For /f %%j in ('Find "" /v /c ^< %_File%') Do Set /a _Lines=%%j
SET /a _Rand=(%RANDOM%*%_Lines%/32768)
for /F "skip=%_Rand% delims=" %%i in (%_File%) do set "xprvar=%%i"amp;goto nextline
:nextline
echo You got %xprvar%
set /a _Rerun=1
set /p _Rerun=""
if not '%Rerun%'=='q' goto start
 

Ответ №2:

пожалуйста, предоставьте образец файла. разделено ли оно запятой или основано на новой строке.

если он основан на новой строке, вы можете использовать приведенный ниже код java:

 public static String getRandomLine(String path) throws IOException{
    long lineCount;
    try ( Stream<String> stream = Files.lines(Paths.get(path))) {
        lineCount = stream.count();
    }
    String line;
    try ( Stream<String> stream = Files.lines(Paths.get(path))) {
        long randomLine = (long) (new Random().nextDouble() * lineCount);
        line = stream.skip(randomLine).findFirst().orElse(null);
    }
    return line;
}
 

Комментарии:

1. Это вопрос о языке пакетных сценариев; какое отношение к этому имеет Java?