Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 在标记中选择更多单词_Batch File_Random_Token - Fatal编程技术网

Batch file 在标记中选择更多单词

Batch file 在标记中选择更多单词,batch-file,random,token,Batch File,Random,Token,我试着从单词和句子列表中选择一个随机事件。每当事件发生时,它只显示每行中的第一个单词。如何使其显示整行 这是批处理文件 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

我试着从单词和句子列表中选择一个随机事件。每当事件发生时,它只显示每行中的第一个单词。如何使其显示整行

这是批处理文件

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!"

更直接的方法是使用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

更直接的方法是使用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
更简单:

@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

更简单:

@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
行…

tokens=1,2*
请参见
获取/?
。如果
%groceryrandom%
=
0
,会发生什么情况?为什么不在(groceryevents.txt)中使用,
for/f“tokens=1*”%%a如果%groceryrandom%%==%%a echo%%b,我应该删除15行并将其设置为0-14行吗?然后将随机数更改为%%15?@Nate,请参考您已接受的答案。
tokens=1,2*
请参见
获取/?
。如果
%groceryrandom%
=
0
,会发生什么情况?为什么不在(groceryevents.txt)中使用,
for/f“tokens=1*”%%a如果%groceryrandom%%==%%a echo%%b,我应该删除15行并将其设置为0-14行吗?然后将随机数更改为%%15?@Nate,请参考您已接受的答案。