Batch Datei soll String aus einer oder mehreren Dateien auslesen
Hallo zusammen,
ich möchte via Batch aus einer oder mehreren Text-Dateien einen String (steht immer an gleicher Stelle)
auslesen, diesen String als Verzeichnis anlegen (sofern nicht schon vorhanden) und die ausgelesene(n) Datei(en)
in diese(s) Verzeichnis(se) verschieben.
Habe mich in diesem Forum schon einige Hinweise gefunden. Bekomme aber nur den Strin aus einer Datei gelesen.
Kann dazu jemand weiterhelfen?
Vielen Dank schon mal für die Hilfe.
Gruss webrunner1
ich möchte via Batch aus einer oder mehreren Text-Dateien einen String (steht immer an gleicher Stelle)
auslesen, diesen String als Verzeichnis anlegen (sofern nicht schon vorhanden) und die ausgelesene(n) Datei(en)
in diese(s) Verzeichnis(se) verschieben.
Habe mich in diesem Forum schon einige Hinweise gefunden. Bekomme aber nur den Strin aus einer Datei gelesen.
Kann dazu jemand weiterhelfen?
Vielen Dank schon mal für die Hilfe.
Gruss webrunner1
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 206503
Url: https://administrator.de/contentid/206503
Ausgedruckt am: 23.11.2024 um 06:11 Uhr
7 Kommentare
Neuester Kommentar
Hallo webrunner1,
und
in der Konsole eingegeben sind deine Freunde oder ES.
Wie sieht denn dein bisheriger Code aus?
Gruss
Tsuki
findstr /?
set /?
Wie sieht denn dein bisheriger Code aus?
Gruss
Tsuki
Hallo webrunner1 und willkommen im Forum!
Ich versuche mal, zu interpretieren: Der in allen "DEL*.TMP"-Dateien enthaltene String befindet sich jeweils in der ersten Zeile ab Position 12 und ist 6 Zeichen lang - falls ja, dann (völlig ungetestet) etwa so:
Die Verzeichnisse werden erstellt, das Verschieben aber wegen des "
Grüße
bastla
Ich versuche mal, zu interpretieren: Der in allen "DEL*.TMP"-Dateien enthaltene String befindet sich jeweils in der ersten Zeile ab Position 12 und ist 6 Zeichen lang - falls ja, dann (völlig ungetestet) etwa so:
@echo off & setlocal
set "dateipfad=c:\temp\"
set "dateimaske=DEL*.TMP"
pushd "%dateipfad%"
for /f "delims=" %%i in ('dir /b "%dateimaske%"') do call :ProcessFile "%%i"
popd
pause
goto :eof
:ProcessFile
set /p Zeile1=<%1
set "Verzeichnis=%Zeile1:~11,6%"
md "%Verzeichnis%" 2>nul
echo move %1 "%Verzeichnis%"
goto :eof
echo
" in Zeile 15 nur durch Ausgabe des "move
"-Befehls simuliert. Wenn das Ergebnis vernünftig aussieht, einfach dieses "echo
" entfernen ...Grüße
bastla
Moin webrunner1,
wenn der Batch noch irgendetwas machen soll, nachdem die einzelnen Dateien in :ProcessFile verarbeitet worden sind, dann diesen Code vor die jetzige Zeile "pause" einfügen.
wenn der Batch noch irgendetwas mit den einzelnen Dateien in :ProcessFile machen soll, dann diesen Code vor die jetzige Zeile "goto :eof" in :ProcessFile einfügen.
Grüße
Biber
wenn der Batch noch irgendetwas machen soll, nachdem die einzelnen Dateien in :ProcessFile verarbeitet worden sind, dann diesen Code vor die jetzige Zeile "pause" einfügen.
wenn der Batch noch irgendetwas mit den einzelnen Dateien in :ProcessFile machen soll, dann diesen Code vor die jetzige Zeile "goto :eof" in :ProcessFile einfügen.
Grüße
Biber