[batch] plik wsadowy wykorzystujący plik tekstowy

0

Chcę napisać plik wsadowy który z pliku txt będzie wyświetlał wybrane dane oddzielone przecinkiem. W jaki sposób mogę to zrobić?

przykładowa zawartość pliku:
1,pies,reksio,5
2,kot,filemon,9
itd..

wynik, który chcę wyświetlić:
1 reksio
2 filemon
itd..

zacząłem próbować ale nie mam pomysłu jak wykorzystać tu pętlę i wybierać interesujące mnie dane

@echo off

FOR /L %%X IN rekord DO (
	
)

PAUSE
1

na Linuksie zrobiłbym to tak:

cat awk.csv | awk -F ',' '{print $1, $3}'

I niech teraz ktoś przyjdzie i powie że windows jest dobry dla programisty. I niech przy okazji nie zapomni powiedzieć jak rozwiazać ten problem

2

Plik c:\tmp\w.csv

id,rasa,nazwa,wiek
1,pies,reksio,5
2,kot,filemon,9

PS:

import-csv C:\tmp\w.csv | select id, nazwa

screenshot-20191122120819.png

0

Bezpośrednio z wiersza polecenia:

for /f "skip=1 tokens=1,2,3,4 delims=," %a in ( test.txt) do @echo lp=%a gatunek=%b imie=%c wiek=%d

jeśli chcesz uruchamiać z pliku *.cmd :

@echo off
for /f "skip=1 tokens=1,2,3,4 delims=," %%a in ( test.txt) do (
	echo lp=%%a
	echo gatunek=%%b
	echo imie=%%c
	echo wiek=%%d
)

Faktycznie CommandLine nie jest intuicyjny i obsługa błędów jest w nim koszmarna, ale to najszybszy sposób pisania skryptów pod Win. Do pewnych rzeczy można się przyzwyczaić ;).

Paweł

1 użytkowników online, w tym zalogowanych: 0, gości: 1