内部文件看起来像这样:
_ID Slot Type Mod Base Val Req Str
0 Chest Mag 5 5 5 1 "robe"
1 Chest Lig 5 5 5 1 "chest"
2 Chest Med 5 5 5 1 "chest"
3 Chest Hea 5 5 5 1 "plate"
我使用
计算文件内的行数setlocal EnableDelayedExpansion
set "cmd=findstr /R /N "^^" Pref.tsv | find /C ":""
for /f %%p in ('!cmd!') do set Prefe=(%%p-1)
这个很好但是当我尝试使用
随机选择一行时set /a Pref_rand=(%RANDOM%*%%Prefe/32768)
它抛出" 缺少操作数" (随机选择行数范围内的数字)
接下来我想问一些行没有正确显示
for /F "delims=TAB" %s in (Pref.tsv) do @echo %s
例如在文件中是:
12 Boots Mag 5 5 5 1 "shoes"
和cmd显示12
第一行也只显示
_ID Slot
有些行显示正确。
感谢您的帮助和时间。
答案 0 :(得分:0)
此处有两个错误,首先计算/a
时缺少Prefe
,然后检索其值的语法为%Prefe%
,而不是%%Prefe
。< / p>
此代码应该有效:
setlocal EnableDelayedExpansion
set "cmd=findstr /R /N "^^" Pref.tsv | find /C ":""
for /f %%p in ('!cmd!') do set /a Prefe=(%%p-1)
echo %Prefe%
set /a Pref_rand=(%RANDOM%*%Prefe%/32768)
echo %Pref_rand%