Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

CSV-Datei via Batch abarbeiten

Frage Entwicklung Batch & Shell

Mitglied: flo7689

flo7689 (Level 1) - Jetzt verbinden

29.07.2010 um 19:00 Uhr, 5659 Aufrufe, 2 Kommentare

Halli hallo hallöle zusammen,

leider versagen meine Batch-Kenntnisse bei folgendem Problem... Deshalb hoffe ich mal, dass ihr mir helfen könnt!

Ich habe eine CSV-Datei in der eine Zahl und ein Name steht (pro Zeile).
Also so:
01.
12345;Klaus 
02.
54321;Franz 
03.
98754;Emil 
04.
...
Nun möchte ich anhand von den Namen in dieser CSV-Datei einige Ordner anlegen und das automatisch und für die komplette CSV-Datei.

Folgenden Code habe ich schon:

01.
@echo off & setlocal 
02.
 
03.
rem CSV und Delimiter setzen 
04.
set "liste=D:\test\namen.csv" 
05.
set "Delim=;" 
06.
 
07.
rem Nummer abfragen 
08.
set /p Eingabe=nr:  
09.
if not defined Eingabe (echo Es wurde kein Datensatz gefunden! & pause & goto :eof) 
10.
 
11.
rem Nummer und Name in Variablen speichern 
12.
set nr= 
13.
for /f "tokens=1-2 delims=%Delim%" %%a in ('findstr /b /i /c:"%Eingabe%%Delim%" "%liste%"') do ( 
14.
    set "nr=%%a" 
15.
    set "name=%%b" 
16.
17.
 
18.
rem Fehler-Code 
19.
if not defined nr (echo Die Nummer "%Eingabe%" wurde nicht gefunden! & pause & goto :eof) 
20.
 
21.
rem Aktion: 
22.
mkdir %nr%_%name% 
23.
echo "%nr%_%name%" wurde erfolgreich angelegt! 
24.
 
25.
pause
Allerdings muss ich nun jede Nummer manuell eingeben, dann folgt die Überprüfung und dann wird der entsprechende Ordner angelegt.
Daher die Frage: Wie kann ich das ganze mit einer FOR-Schleife (?) automatisieren, dass für jeden Eintrag in der CSV-Datei ein Ordner angelegt wird?

Vielen Dank schon einmal für eure Hilfe!
Grüße
Flo
Mitglied: bastla
29.07.2010 um 19:17 Uhr
Hallo flo7689!

Du hattest in Deinem Ansatz ja schon alles Wesentliche - eine Reduktion auf selbiges könnte daher so aussehen:
01.
@echo off & setlocal 
02.
 
03.
rem CSV und Delimiter setzen 
04.
set "liste=D:\test\namen.csv" 
05.
set "Delim=;" 
06.
 
07.
for /f "usebackq tokens=1-2 delims=%Delim%" %%a in ("%liste%") do ( 
08.
    md "%%a_%%b" 
09.
    echo "%%a_%%b" wurde erfolgreich angelegt! 
10.
11.
pause
Kurze Anmerkung zur "for"-Schleife: mit "usebackq" kannst Du den Dateipfad unter Anführungszeichen angeben (ohne "usebackq" würde er als zu zerlegender einzeiliger Text interpretiert) ...

Grüße
bastla
Bitte warten ..
Mitglied: flo7689
29.07.2010 um 19:28 Uhr
Hey bastla,

super, vielen Dank! Funktioniert super!
Danke!

Gruß
Bitte warten ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

VB for Applications
Bestimmte Daten aus eine CSV-Datei in eine Excel-Tabelle importieren (2)

Frage von MariaElena zum Thema VB for Applications ...

Batch & Shell
gelöst PS Werte CSV-Datei in AD Attribut (3)

Frage von lupolo zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...