所以我希望我的 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
。请注意,标记之间的任何空格都被替换为一个空格。