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

mehrere Variable aus Datei auslesen

Frage Entwicklung Batch & Shell

Mitglied: MoonXIT

MoonXIT (Level 1) - Jetzt verbinden

17.08.2009, aktualisiert 12:27 Uhr, 5164 Aufrufe, 5 Kommentare

Hallo zusammen

Mein Ziel:

Ich habe ein Programm geschrieben, dass Daten in eine Konfiguartionsdatei reinschreibt. Nun möchte ich, dass mein Batchfile, dass ich zum Snapshoten brauche diese Datei ausliest und den Wert der Variablen ausliest.

Ausgangslage:

Momentan habe ich ein File das Test.txt heisst, die auf C:\ liegt. In dieser Datei stehen zwei Zeilen mit zwei Werten z.B.

- PC01
- PC02

Dann habe ein Patchfile, dass Textfile auslesen soll. Dabei habe ich beim googeln den folgenden Code gefunden.

for /f %%a IN (C:\test.txt) do set VMNAME1= %%a
for /f %%b IN (C:\test.txt) do set VMNAME2= %%b

Problem:

Leider passiert es, dass nun die beide Batchvariablen den Wert PC02 haben. Allerdings möchte ich, dass die Variable VMNAME1z.B. den Wert PC01 hat und VMNAME2 z.B. PC02 (Die beiden PCxx Werte sind variablen beschrieben vom Ursprungsprogramm). Weiss jemand, wie ich die Variablen korrekt auszulesen habe.

danke

MOONXIT
Mitglied: Biber
17.08.2009 um 12:38 Uhr
Moin MoonXIT,

wenn jede Zeile in eine andere Variable "übertragen" werden soll, dann musst Du es nach diesem Muster machen:

01.
@echo off & setlocal 
02.
for /f %%a IN (C:\test.txt) do call :SetMirWatt %%a 
03.
goto :eof 
04.
 
05.
:SetMirWatt  
06.
if not defined VMNAME1 set "VMNAME1=%1" & goto :eof 
07.
if not defined VMNAME2 set "VMNAME2=%1" & goto :eof 
08.
:: ... 
09.
if not defined VMNAMEn set "VMNAMEn=%1" & goto :eof
Okay, wenn Du in der Praxis ja nun keine 200 VMs nutzen wirst, dann ist es vertretbar und viel wichtiger: halbwegs wartbar.

Grüße
Biber
[Edit] Tippfehlerberichtigung siehe unten ("call SetMirWatt:%%a). [/Edit]
[Edit ii] Tippfehlerberichtigung ii siehe unten ("In Zeile 8 dann bitte noch 2 davon. ") [/Edit ii]
Bitte warten ..
Mitglied: MoonXIT
17.08.2009 um 13:06 Uhr
Leider kommt bei mir immer :

Der Befehl "setmirwatt" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.

was habe ich falsch gemacht??

Ich habe deinen Befehl 1:1 kopiert.
Bitte warten ..
Mitglied: MoonXIT
17.08.2009 um 13:16 Uhr
ok habs kapiert: hatte einen kleinen Fehler im Code unter:

for /f %%a IN (C:\test.txt) do call SetMirWatt %%a

muss bei SetMirWatt nein ein : eingebaut werden.

also:

for /f %%a IN (C:\test.txt) do call :SetMirWatt %%a
Bitte warten ..
Mitglied: Biber
17.08.2009 um 15:19 Uhr
Uuuupps, sorry, MoonXIT,

bei mehrzeiligen Batchdateien habe ich oft in den unterschiedlichsten Zeilen solche Tippfehler....

Ich trage den Doppelpunkt oben in der Skizze nach.

Grüße
Biber
Bitte warten ..
Mitglied: 81825
17.08.2009 um 15:24 Uhr
Zitat von Biber:
Ich trage den Doppelpunkt oben in der Skizze nach.

In Zeile 8 dann bitte noch 2 davon.
Bitte warten ..
Ähnliche Inhalte
PHP
gelöst TXT Datei auslesen und bestimmte Zeilen in Variable setzen (11)

Frage von 126594 zum Thema PHP ...

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

Frage von Gurkenhobel zum Thema VB for Applications ...

Batch & Shell
gelöst PowerShell, Log Datei auslesen, bei Änderungen E-Mail senden (12)

Frage von swissbull zum Thema Batch & Shell ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(8)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Userverwaltung
gelöst Nicht Admins erlauben Verknüpfungen zu löschen (17)

Frage von WinLiCLI zum Thema Windows Userverwaltung ...

Windows Update
gelöst WSUS Produkte weiter einschränken (11)

Frage von thaefliger zum Thema Windows Update ...