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, 4831 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
gelöst Datei mit variablem Namen einlesen und als Excel speichern (1)

Frage von Anrion zum Thema VB for Applications ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Batch & Shell
gelöst Aktueller Besitzer der aktuellen Datei herausfinden und in Variable schreiben (11)

Frage von Peter32 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...