erik72
Goto Top

Wert aus einer Steuerdatei per Batch zuweisen

In einem Verzeichnis werden eine oder mehrere Dateien erstellt (Schokolade.txt, Messer.txt, ....).
Zu jedem Dateinamen gehört ein Datensatz in einer Steuerdatei gepflegt, welche inhaltlich so aussieht:

Schokolade.txt bitter
Messer.txt scharf
Auto.txt schnell
Pflanze.txt grün

Nach Skriptaufruf soll eine Bildschirmausgabe in Form der Eigenschaft aus der zweiten Spalte erfolgen.
Wenn z.B. nur die Datei "Auto.txt" erstellt wurde, soll nur "schnell" ausgegeben werden. Bei zwei oder mehreren Dateien natürlich die weiteren zugehörigen Eigenschaften untereinander. Nach Ausgabe sollen die Dateien gelöscht werden.
Ist es möglich über DOS-Batch diese Aufgabe zu realisieren und hat jemand Lösungsansätze?
Danke im voraus
Gruß
Erik

Content-Key: 101757

Url: https://administrator.de/contentid/101757

Printed on: April 18, 2024 at 20:04 o'clock

Member: bastla
bastla Nov 13, 2008 at 14:14:29 (UTC)
Goto Top
Hallo Erik72 und willkommen im Forum!

Soferne die Dateinamen keine Leerzeichen enthalten, sollte das (ungetestet) etwa so gehen:
@echo off & setlocal
for %%i in ("D:\Der Ordner mit den Dateien\*.txt") do for /f "tokens=2" %%a in ('findstr /i /c:"%%~nxi" "D:\Steuerdatei.txt"') do (  
    echo %%a
    echo del "%%i" 2>nul  
)
echo\
pause
Das Löschen der Dateien wird (zum Testen) durch das "echo" in Zeile 4 nur angezeigt - wenn tatsächlich gelöscht werden soll, das "echo" entfernen.

Grüße
bastla

[Edit] `ergänzt [/Edit]
Member: Erik72
Erik72 Nov 13, 2008 at 14:32:24 (UTC)
Goto Top
Hallo bastla,
deine Lösung ist 1A! Ein herzliches Danke.

Es fehlt nur ein ' aber das findet man schnell... face-wink

Gruß
Erik
Member: bastla
bastla Nov 13, 2008 at 15:25:10 (UTC)
Goto Top
Hallo Erik72!

Es fehlt nur ein ' aber das findet man schnell... face-wink
Das Motto ist zwar "Sparen, wo's geht", aber man kann's auch übertreiben ... face-wink

Zum Glück hatte ich aber noch eines übrig - ist jetzt oben eingebaut.

Grüße
bastla
Member: Erik72
Erik72 Nov 18, 2008 at 12:59:23 (UTC)
Goto Top
Hallo,
es ist zwar gelöst, will unter einer Bedingung aber nicht richtig.
Wenn in der Steuerdatei die Zuordnung identisch beginnt, dann bekomme ich zwei mal die Ausgabe der zweiten Spalte.

Beispiel Steuerdatei:

rot wert1
gruen wert2
gruenblau wert3
blau wert4

Bei Erstellung der Datei gruen werden zwei Werte ausgegeben, namlich wert1 und wert2.

Kann man das irgendwie unterbinden, dass bei Erstellung der Datei gruen der wert3 nicht zugewiesen wird? Schliesslich braucht wert3 die Datei gruenblau!

Vielen Dank schon mal vorab.
Gruß
Erik
Member: bastla
bastla Nov 18, 2008 at 13:36:31 (UTC)
Goto Top
Hallo Erik72!

Nimm dazu auch das auf den Suchbegriff folgende Trennzeichen (=Leerzeichen) in die Suche auf - Zeile 2 sähe dann so aus:
for %%i in ("D:\Der Ordner mit den Dateien\*.txt") do for /f "tokens=2" %%a in ('findstr /i /c:"%%~nxi " "D:\Steuerdatei.txt"') do (
Grüße
bastla