[batch] plik wsadowy wykorzystujący plik tekstowy

[batch] plik wsadowy wykorzystujący plik tekstowy
HO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
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

Kopiuj
@echo off

FOR /L %%X IN rekord DO (
	
)

PAUSE
KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5582
1

na Linuksie zrobiłbym to tak:

Kopiuj
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

Marcin.Miga
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2794
2

Plik c:\tmp\w.csv

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

PS:

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

screenshot-20191122120819.png

Pawel L.
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 40
0

Bezpośrednio z wiersza polecenia:

Kopiuj
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 :

Kopiuj
@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ł

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.