CMD - 从文件TSV

时间:2018-05-10 11:55:19

标签: cmd

您好,

我的TSV文件很少,问题很少

内部文件看起来像这样:

 _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


有些行显示正确。
感谢您的帮助和时间。

1 个答案:

答案 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%