如何在 CMD 中显示空格?

如何在 CMD 中显示空格?

所以我希望我的 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

您可以指示for循环使用通配符标记 '*' 来获取所有剩余标记,如下所示:

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

这里,第一个标记被分配给%%a,其余所有标记都被分配给%%b。请注意,标记之间的任何空格都被替换为一个空格。

相关内容