CMD - 从文件 TSV 导入字符串



你好,

我的 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


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

这里有两个错误,首先在计算Prefe时缺少/a,然后检索其值的语法是%Prefe%,而不是%%Prefe

此代码应该有效:

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%

最新更新