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

Informationen aus Datei fortlaufend in unterschiedliche Variable einlesen!?

Frage Entwicklung Batch & Shell

Mitglied: 43547

43547 (Level 1)

15.02.2007, aktualisiert 11.04.2007, 4838 Aufrufe, 8 Kommentare

Hallo,

folgende Aufgabenstellung habe ich momentan zu lösen: Es gibt eine Datei namens 'LW_C.drv'. Der Inhalt sieht folgermaßen aus:

LW_100=C:\meinprogramm\test
LW_101=C:\nocheinprogramm\test2
LW_102 ...
.
.
.
LW_199=D:\xyz\


Per for-Schleife innerhalb einer batch soll zeilenweise der vor dem = -Zeichen stehende Teil als Variablenname verwendet/deklariert (z.B. LW_120) werden, als Inhalt der Variable soll der Teil hinter dem = -Zeichen genutzt werden. Es soll so lange fortgefahren werden, bis das Ende der Datei erreicht ist. Sprich die Variable selbst muss sich bei jedem Durchlauf der for-Schleife ändern.
Ich hab schon einen Lösungsansatz, jedoch scheitert es unter anderem daran, eine Variable bei jedem Durchlauf zu ändern, also z.B. wie in C++ die Variable i hochzählen.
Wäre cool wenn Ihr einen Lösungsansatz parat hättet.

MfG
Marcel
Mitglied: Biber
15.02.2007 um 15:11 Uhr
Moin IT-KMS-Nitschke,

Demo am CMD-Prompt:
01.
(=15:08:44  D:\temp=) 
02.
>for /f "delims== tokens=1-2" %i in (f:\temp\LW_C.drv) do @echo Set %i=%j 
03.
Set LW_100=C:\meinprogramm\test 
04.
Set LW_101=C:\nocheinprogramm\test2 
05.
 
06.
-- im Batch- 
07.
for /f "delims== tokens=1-2" %%i in (f:\temp\LW_C.drv) do Set %%i=%%j
Gruss
Biber
Bitte warten ..
Mitglied: 43547
15.02.2007 um 15:31 Uhr
Danke für deinen Vorschlag aber das scheint hier so nicht zu funktionieren. Bei jedem Durchlauf wird ein Pfad aus einer Zeile der Datei in %i geschrieben und anschließend nach %j verschoben. Aber im nächsten Durchlauf habe ich die nächste Zeile zum Ende wieder in %j und die vorherige ist verloren. Gerade das wollte ich verhindern, sprich alles was ausgelesen wurde (jede Zeile) soll in Variablen vorliegen damit ich jede Variable im Batch anschließend weiternutzen kann.
Hoffe du oder jemand anderes kann helfen.

MfG
Nitschke
Bitte warten ..
Mitglied: bastla
15.02.2007 um 17:29 Uhr
Hallo IT-KMS-Nitschke!

Wie sollte es denn weitergehen, wenn Du Dein Array aufgebaut hast? Lässt sich der weitere Verlauf nicht direkt als Unterprogramm in der Schleife durchführen, also in der Art:
01.
for /f "delims== tokens=1-2" %%i in (f:\temp\LW_C.drv) do call :Process "%%i" "%%j" 
02.
goto :eof 
03.
:Process 
04.
echo Für %~1 wurde Wert %~2 gelesen ... 
05.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: bastla
15.02.2007 um 22:30 Uhr
... oder, falls Du anhand der Nummer zugreifen willst, ginge das zB so:
01.
set /p lNr=Laufende Nummer_ 
02.
set Drv= 
03.
for /f "delims== tokens=2" %%i in ('findstr /b /i "LW_%lNr%=" f:\temp\LW_C.drv') do set "Drv=%%i" 
04.
echo Zu %lNr% wurde folgender Eintrag gefunden: %Drv%
Hier wurde bewusst nur noch der Teil hinter dem ersten "=" (mit "tokens=2") gelesen.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
16.02.2007 um 09:38 Uhr
Ich weiss nich', bastla,

ich denke immer noch noch, dass IT_KMS-Nitschke die zuerst gepostete Variante missverstanden hat.
Bei Deiner letzten (handwerklich richtigen) Variation des Themas kommt doch inhaltllich nichts anderes heraus...

@43547:
Bitte nochmal am CMD-Prompt anschauen:
01.
>for /f "delims== tokens=1-2" %i in (LW_C.drv) do @Set %i=%j 
02.
---und dann bitte mit "Set LW_ " ansehen, welche Variablen da sind: 
03.
>Set LW_ 
04.
----- es sollte passieren die Ausgabe: 
05.
LW_100=C:\meinprogramm\test 
06.
LW_101=C:\nocheinprogramm\test2 
07.
.... 
08.
 
Gruss
Biber
Bitte warten ..
Mitglied: bastla
16.02.2007 um 09:52 Uhr
@Biber

Full ACK, wobei ich mich aber immer noch frage, was er dann mit den ganzen Variablen anstellen will - daher meine Varianten zur direkten Verarbeitung per Schleife bzw für Random-Zugriff ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
10.04.2007 um 19:37 Uhr
Tja.... den Beitrag kann ich wohl auch dichtmachen.... oder bewegt sich hier noch etwas?

Gruss Biber
Bitte warten ..
Mitglied: 43547
11.04.2007 um 11:29 Uhr
ja entschludige... Erfolgreich abgeschlossen... danke nochmal
Bitte warten ..
Ähnliche Inhalte
Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

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

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
Windows Server
gelöst Exchange HyperV Prozessorlast (19)

Frage von theoberlin zum Thema Windows Server ...

Windows Server
Server mit Netzwerkaussetzern (18)

Frage von SarekHL zum Thema Windows Server ...

Server-Hardware
gelöst SPP von HP Abwärtskompatibel? (14)

Frage von fireskyer zum Thema Server-Hardware ...

LAN, WAN, Wireless
gelöst Batchdatei um einen Proxy einzustellen (14)

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