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

Per Batch Daten aus TXT lesen und in Variable übergeben

Frage Entwicklung Batch & Shell

Mitglied: zensbert

zensbert (Level 1) - Jetzt verbinden

05.09.2010 um 19:39 Uhr, 5812 Aufrufe, 10 Kommentare

Hallo,
ist zwar keine Schwierigkeit an sich, aber ich habe das Problem dass ich Daten aus einer TXT auslesen will und in verschiedene Variablen aufsplitten will..
In der besagten TXT ist nur die Zeile, alles andere wurde vorher aussortiert.. Problem sind die Leerzeilen..

Beispiel der TXT:
ID1001 <TAB> Kundenname <TAB> Beschreibung <TAB> RDP <TAB> URL <TAB> Port <TAB> User <TAB> Passwort

Hier sieht man dass bei Kundenname auch mal Leerzeilen mit drin sind z.B. "Mustermann GmbH"..
Ich brauche halt folgende Daten jeweils einzeln in Variablen: RDP, URL, PORT, USER, PW

Habe schon mit Delims und Tokens gespielt, aber iwie klappt das nich^^

Thx for Support,
Thomas
Mitglied: pieh-ejdsch
05.09.2010 um 20:49 Uhr
moin zensbert,

anstatt Leerzeilen meintest Du sicherlich Leerzeichen...
standartmässig ist delims der For-Schleife TAB und Leerzeichen

sind Die <TAB> Tabulatoranschläge? - dann in der for Schleife einen Tabanschlag nach dem delims= machen
bei einer Beispieldatei
ID1001 <TAB> Kundenname <TAB> Beschreibung <TAB> RDP <TAB> URL <TAB> Port <TAB> User <TAB> Passwort 
ID1001 	 Kundenname OHG Beispiel 	 Beschreibung 	 RDP 	 URL 	 Port 	 User 	 Passwort 
ID1001  Kundenname  Beschreibung  RDP  URL  Port  User  Passwort
reicht diese BatchZeile
01.
for /f "usebackq tokens=4-8 delims=	" %%i in ("neues textdokument.txt") do echo 1.%%i 2.%%j 3.%%k 4.%%l 5.%%m
Gruß Phil
Bitte warten ..
Mitglied: bankaifan
06.09.2010 um 09:43 Uhr
Kleine Anmerkung noch, wenn ich mich nicht verzählt habe muss es ..."...tokens=3-7... heißen. Er will ja dass RDP auch noch dabei ist und an erster stelle steht ja auch ein <TAB>
Bitte warten ..
Mitglied: LotPings
06.09.2010 um 11:16 Uhr
Moin zusammen,

nö bankaifan "ID1001" steht an erster Stelle und ein führender delims würde nicht mitzählen.

Um die Variablen direkt zuzuweisen kann er dies benutzen;
01.
for /f "usebackq tokens=4-8 delims=	" %%A in ("neues textdokument.txt" 
02.
) do for %%V in ("RDP=%%A" "URL=%%B" "Port=%%C" "User=%%D" "Passwort=%%E" 
03.
) Do Set %%V
(logisch eine Zeile,nur der Übersicht halber umbrochen)

Gruß
LotPings
Bitte warten ..
Mitglied: bankaifan
06.09.2010 um 11:26 Uhr
Sry :D Hab das ID1001 übersehen :D dann passt des natürlich.
Bitte warten ..
Mitglied: pieh-ejdsch
06.09.2010 um 18:18 Uhr
moin LotPings,

for %%V in ("RDP=%%A" "URL=%%B" "Port=%%C" "User=%%D" "Passwort=%%E" 
) do set %%V
Bei mir war mal der Effekt das Die Variablennamen ein führendes AnführungsZeichen " enthalten und die Variablen am Ende derZeichenfolge ein AnführungsZeichen " enthalten.

warum des so war weis ich nicht somit konnte ich nicht Variablen RDP,... nicht abrufen nur "RDP

besser ist
for %%V in ("RDP=%%A" "URL=%%B" "Port=%%C" "User=%%D" "Passwort=%%E" 
) do set "%%~V"
Gruß Phil
Bitte warten ..
Mitglied: zensbert
08.09.2010 um 21:02 Uhr
Hallo, entschuldigung wegen der kurzen ruhephase..
danke an alle Helfer.. funktioniert super damit.. ich habe nur eine kurze frage zum ergänzen; und zwar stehen in der TXT diese Zeilen, wenn ich nun aber nach dem kunden suche zeigt er alle infos aus der Zeile bzw. Zeilen an wenn der kunde mehrere einträge hat..

derzeit suche ich so:
type database.txt |find /I "%client%"

schön wäre es aber wenn nur die ID, Kundenname und Beschreibung angezeigt werden, das Problem hierbei sind für mich die Einträge von Kunden die mehr als einen Eintrag haben und das iwie untereinander aufgelistet werden soll..

z.B.

Bitte Kundennamen eingeben:
Mustermann

Folgende Einträge gefunden:
ID1001 Mustermann, Max PC1
ID1002 Mustermann, Max PC2

jemand ne idee wie ich diese suche so umstelle dass er nur die 3 Positionen anzeigt (statt die komplette Zeile) und die Treffer untereinander auflistet?


Many Thx so far..

Thomas
Bitte warten ..
Mitglied: LotPings
08.09.2010 um 21:16 Uhr
Moin Thomas,

komisch jetzt ist da auf einmal ein Komma zwischen Kundenname und Beschreibung?

01.
@Echo off 
02.
Set /P Client="Bitte Kundenname angeben: " 
03.
for /f "tokens=1-3 delims=	" %%A in ( 
04.
  ' Find /i "%Client%" ^<database.txt ' 
05.
    ) do Echo %%A %%B %%C
Aber das Prinzip mit den delims und tokens könntest du doch inzwischen verstanden haben !

Gruß
LotPings
Bitte warten ..
Mitglied: zensbert
08.09.2010 um 21:40 Uhr
Hi,
Nä..kein Komma, nur ein schlechtes Beispiel
"Mustermann, Max" ist der Kunde und "PC1" die Beschreibung..

Sagen wir es mal so ich weiss was ein tokens ist, delims bin ich noch nicht schlau draus geworden, muss ich nochmal googlen..
es sind halt immer zwei paar schuhe quelltext zu verstehen, oder es eben so selbst machen zu können

Wie kriege ich jetzt die Zeile weg mit "database.txt" in der ausgabe?

Daaanke! Thomas
Bitte warten ..
Mitglied: LotPings
08.09.2010 um 23:35 Uhr
Hallo Thomas,

habs oben geändert, die Datei kommt jetzt über Input-Redirection dann kennt Find den Dateinamen nicht.

Gruß
LotPings
Bitte warten ..
Mitglied: zensbert
09.09.2010 um 19:26 Uhr
Tja, wer kann der kann!

Funktioniert super, vielen Dank!

Greetz
Thomas
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Batch Abfrage Vergleiche mit Variable goto (4)

Frage von Zunaras zum Thema Batch & Shell ...

PHP
gelöst HTML Dropdownmenü auslesen und in PHP als Variable übergeben (35)

Frage von ITFlori zum Thema PHP ...

Batch & Shell
gelöst BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

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

Frage von patz223 zum Thema Windows Userverwaltung ...

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 ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...