Выберите больше слов в токене - PullRequest
0 голосов
/ 26 января 2019

Я пытаюсь сделать случайное событие, которое выбирает из списка слов и предложений.Всякий раз, когда происходит событие, оно отображает только первое слово в каждой строке.Как сделать так, чтобы он отображал всю строку?

Вот командный файл.

set /a groceryrandom=%random%%%16
for /f "tokens=1,2" %%a in (groceryevents.txt) do if %groceryrandom%==%%a echo %%b

Вот текстовый файл, на который он ссылается

1 Nothing
2 Nothing
3 "You have gained 1 survivor!"
4 Nothing
5 Nothing
6 "You have lost 1 survivor!"
7 Nothing
8 Nothing
9 "You have gained 1 survivor!"
10 Nothing
11 Nothing
12 "You have found 1 weapon!"
13 Nothing
14 Nothing
15 "You have found 5 ammo!"

Ответы [ 2 ]

0 голосов
/ 26 января 2019

Simpler:

@echo off

set /a groceryrandom=%random%%%15 + 1
for /f "tokens=1* skip=%groceryrandom%" %%a in (groceryevents.txt) do echo %%~b & goto continue
:continue

Я добавил строку 0 Nothing в файл данных ...

0 голосов
/ 26 января 2019

Более прямой выбор строки с помощью findstr

@echo off
set /a groceryrandom=%random% %% 15 +1

for /f "tokens=1*" %%A in ('
    findstr /BC:"%groceryrandom% " groceryevents.txt
') do echo %%B

Примеры прогонов:

> Q:\Test\2019\01\25\SO_54372977.cmd
Nothing

> Q:\Test\2019\01\25\SO_54372977.cmd
"You have lost 1 survivor!"

> Q:\Test\2019\01\25\SO_54372977.cmd
Nothing

> Q:\Test\2019\01\25\SO_54372977.cmd
Nothing

> Q:\Test\2019\01\25\SO_54372977.cmd
Nothing
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...