Поэтому я хотел, чтобы мой cmd выбирал случайные предложения.

set /a rnd=%random%%%5
for /f "tokens=1,2" %%a in (list.txt) do if %rnd%==%%a  echo %%b

Я использую это, но внутри файла list.txt у меня есть предложения с пробелами. Почему-то cmd показывает только первое слово, а остальные нет.

Например, предложение в файле.

Привет, как ты?

Это покажет как

Привет и все.

Но если я наберу это так

Привет, как ты?

затем он показывает все слова, но он включает в себя все _

Есть идеи, как сделать так, чтобы пробелы показывались, не заменяя их знаками?

1 ответ1

0

Вы можете указать циклу for захватить все оставшиеся токены, используя подстановочный токен '*', например:

set /a rnd=%random% %% 5 
for /f "tokens=1,*" %%a in (list.txt) do if %rnd%==%%a echo %%b

Здесь первый токен назначается %%a а все остальные токены - %%b . Обратите внимание, что любой пробел между токенами заменяется ровно одним пробелом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .