Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Bestimmte Teil einer CSV auslesen

Mitglied: Sep-Karl

Sep-Karl (Level 1) - Jetzt verbinden

06.06.2011 um 08:29 Uhr, 2534 Aufrufe, 8 Kommentare

Guten Morgen,

ich habe eine CSV-Datei - raumliste.csv

die Datei sieht folgendermaßen aus:

IP-Adresse;Raumname;
10.50.126.1;H26;
10.48.103.1;E103;
10.50.119.1;H19;
etc.

Ich habe ein Variable %raum% in der z.B. "50.126" oder "48.103" steht.

Jetzt soll mein Batchscsript anhand der Informationen (der beiden mittleren Zahlen der IP) den zugehörigen Raumnamen ausgeben.
Mitglied: Skyemugen
06.06.2011 um 08:44 Uhr
Aloha,

na das lässt sich doch ganz simpel per Schleife und findstr realisieren: (siehe Beispiel)

01.
@echo off & setlocal 
02.
set "datei=test.csv" 
03.
set "raum=50.126" 
04.
for /f "tokens=2 delims=;" %%s in ('findstr /c:".%raum%." "%datei%"') do echo %%s 
05.
pause 
06.
goto :eof
greetz André

edit: Nachbesserung à la Friemlers Einwand
Bitte warten ..
Mitglied: Friemler
06.06.2011 um 09:09 Uhr
Hallo Skyemugen,

da würde ich aber lieber
for /f "tokens=2 delims=;" %%s in ('findstr /c:".%raum%." "%datei%"') do echo %%s
nehmen. Sonst findet er z.B. auch 150.126

Gruß
Friemler
Bitte warten ..
Mitglied: Skyemugen
06.06.2011 um 09:37 Uhr
Aloha Friemler,

jo, das Thema mit dem der findest sonst auch fiel mir im Nachhinein auch noch ein aber erstmal war Frühstückspause, das war wichtiger ^_^

greetz André
Bitte warten ..
Mitglied: Sep-Karl
06.06.2011 um 09:42 Uhr
Hallo,

vielen Dank, das hat mir schon sehr geholfen, es funktioniert so.

Kann mir jetzt jemand vllt. noch erklären, was die einzelnen Befehle machen, damit ich euch das nächste mal nicht wieder wegen solcher Kleinigkeiten belästigen muss...

und warum muss das ganze in eine "FOR-Schleife" ?

ist das "goto :eof" nötig ?? und was bedeuted ":eof" müsste das nicht erst irgendwo definiert sein ??

vielen Dank
Bitte warten ..
Mitglied: Skyemugen
06.06.2011 um 09:57 Uhr
Aloha,

klar, es wirkt erst einmal seltsam eine Schleife für eine Einzelheit zu nutzen aber die for /f-Nutzung bringt eben das mit, was du forderst: Eine Zerlegung des Inhaltes mit abgegrenzter Ausgabe - dazu haben wir ein schönes Tutorial zur FOR-Schleife aber um dich nicht erst damit wegzuschicken, erkläre ich es dir:

Da die CSV glücklicherweise in Semikola unterteilt ist und du den Wert der zweiten Spalte haben willst, nutzt man ganz einfach das Trennzeichen ;, welches per delims= definiert wird und setzt dazu die Ausgabe des zweiten Bereiches auch Token genannt tokens=2 (und da hier nur ein token angegeben wird, wird auch die angegebene Variable %%s genutzt, bei tokens=1,2 z.B. wäre die gewünschte Variable dann %%t)

Das goto :eof führt zum Beenden eines Ablaufes, wenn es keinen übergeordnete Ablauf/Prozess gibt, beendet diese die ausgeführte Batchdatei. goto :eof (was nichts anderes als end of bedeutet) ist eine im cmd bereits integrierte Sprungmarke und muss daher nicht definiert sein.

Ich denke, den findstr-Befehl kannst du (zur Not mithilfe von findstr /?) selbst entziffern

greetz André
Bitte warten ..
Mitglied: Sep-Karl
06.06.2011 um 10:14 Uhr
Hi André.

vielen Dank für die Erklärung, einzig, warum man die Variable %%s (bei nur einem token??) und %%t (bei mehreren tokens???) nutzt ist mir noch nicht ganz klar...

Der findstr-Befehl ist klar, Danke!!
Bitte warten ..
Mitglied: Skyemugen
06.06.2011 um 10:19 Uhr
Aloha,

man darf natürlich sinnvollerweise auch bei %%a anfangen und dann je nach Anzahl der Tokens weitere Variablen den Buchstaben des Alphabetes geben (in geordneter Reihen folge).

1. Token = genutzte Variable (z.B. %%a)
2. Token = im Alphabet folgender Buchstabe des Buchstaben, welcher in der Ursprungsvariable genutzt wurde (dann also %%b)
3. Token = im Alphabet folgender Buchstabe des Buchstaben, welcher in zweiten Variable genutzt wurde (in dem Fall dann %%c)

etc. etc. es geht also nach alphabetischer Reihenfolge und Anzahl der Tokens

In diesem Beispiel hier, wäre %%t eben der folgende Buchstabe auf %%s, wenn man tokens=1,2 also zwei Tokens verwenden würde und man nur den zweiten ausgegeben haben will (%%s wäre ja dann in dem Fall die IP)

greetz André
Bitte warten ..
Mitglied: Sep-Karl
06.06.2011 um 10:36 Uhr
Aloha,

Super Erklärung - jetzt bin ich schlauer!!

vielen Dank!!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Einen bestimmten Teil einer Textdatei auslesen

gelöst Frage von Focus1610Batch & Shell5 Kommentare

Hallo, ich brauche mal einen Denkanstoß. Ich bekomme per FTP von einem Kunden täglich mehrere Textdateien. Diese haben unterschiudlich ...

Batch & Shell

Auslesen bestimmter Spalten aus csv

gelöst Frage von Berti82Batch & Shell6 Kommentare

Hallo, Ich bekomme regelmäßig csv-Dateien mit ca. 77 Spalten und prinzipiell unbegrenzten Zeilen. Diese muss ich eindampfen auf 5 ...

Batch & Shell

Bestimmten Teil eines String aus einer XML-Datei auslesen

gelöst Frage von Dnis822Batch & Shell13 Kommentare

Hallo zusammen, ich stehe vor folgendem Problem: Ich habe eine XML-Datei die bspw. so aussieht: <Url1> <Directory>C:\MeinVerzeichnis\test\</Directory> 'Name' und ...

VB for Applications

Bestimmte Spalten aus CSV-Datei auslesen (VBS)

gelöst Frage von GurkenhobelVB for Applications9 Kommentare

Hallo Community, wieder benötige ich einmal kompetente Hilfe. Mein Script zum Auslesen bestimmte Spalten aus CSV-Dateien (über 200 " ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 1 TagWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 1 TagSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 2 TagenDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein interessanter Beitrag dazu: Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10 Anscheinend ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 2 TagenSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
DSL, VDSL
Mindestgeschwindigkeiten DSL Telekom
Frage von justlukasDSL, VDSL13 Kommentare

Hallo zusammen, Seit diesem Jahr habe ich Verständnisprobleme mit dem Verhalten der Telekom. Wir haben seit einem Jahr VDSL ...

Switche und Hubs
LANCOM-Switch: Probleme (no link) mit SFP-Modulen?
Frage von THETOBSwitche und Hubs11 Kommentare

Hi zusammen, ich habe folgendes Problem: Und zwar habe ich an einem Standort drei Switche verbaut - LANCOM GS-2326P+, ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)10 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall10 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...