CMD - импортировать строку из файла TSV - PullRequest
0 голосов
/ 10 мая 2018

Здравствуйте,

У меня несколько файлов 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"

1-е число я считаю в файле, используя

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 также 1-й ряд показывает только

_ID   Slot


и некоторые строки отображаются правильно.
Спасибо за вашу помощь и время.

1 Ответ

0 голосов
/ 10 мая 2018

У вас есть две ошибки: сначала при подсчете 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%
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...