BATCH tempfile in for Schleife umbenennen
Hallo,
ich stehe gerade mal wieder etwas auf dem Schlauch. Folgende Problemstellung:
Es werden mehrere csv-files nacheinander eingelesen und bei einem bestimmter Eintrag soll die ganze Zeile raus. Aber der ursprüngliche Dateiname soll beibehalten werden.
Bisher habe ich folgendes geschrieben und auch schon ein paar Sachen ausprobiert:
set WORKDIR=C:\test_SG\multifile\
set WORKFILE=*_LA.csv
(for %%a in (%WORKDIR%%WORKFILE%) do (
find /v /i ";-0,00;" %%a >> %%a.tmp
))
Wie bekomme ich es nun hin den ursprünglichen Dateinamen wiederherzustellen???
Viele Grüße
Luce
ich stehe gerade mal wieder etwas auf dem Schlauch. Folgende Problemstellung:
Es werden mehrere csv-files nacheinander eingelesen und bei einem bestimmter Eintrag soll die ganze Zeile raus. Aber der ursprüngliche Dateiname soll beibehalten werden.
Bisher habe ich folgendes geschrieben und auch schon ein paar Sachen ausprobiert:
set WORKDIR=C:\test_SG\multifile\
set WORKFILE=*_LA.csv
(for %%a in (%WORKDIR%%WORKFILE%) do (
find /v /i ";-0,00;" %%a >> %%a.tmp
))
Wie bekomme ich es nun hin den ursprünglichen Dateinamen wiederherzustellen???
Viele Grüße
Luce
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 346056
Url: https://administrator.de/forum/batch-tempfile-in-for-schleife-umbenennen-346056.html
Ausgedruckt am: 11.04.2025 um 17:04 Uhr
4 Kommentare
Neuester Kommentar

Nach deinem find lösche die Original-Datei und dann benenne die temporär erstellte Datei um in die Original-Datei.
Nur den Dateinamen der Original-Datei ("Dateiname.csv") erhältst du in der Schleife mit mit:
%%~nxa
Gruß
Nur den Dateinamen der Original-Datei ("Dateiname.csv") erhältst du in der Schleife mit mit:
%%~nxa
Gruß

Zitat von @LuceDeCiello:
Was genau hat es mit %%~nxa auf sich? Habe ich bisher nirgends etwas von gelesen!
Was genau hat es mit %%~nxa auf sich? Habe ich bisher nirgends etwas von gelesen!
for /?
in die Konsole eingeben, ganz unten steht wie sich die Expansion zusammensetzt.Zusätzlich wurde die Ersetzung von Verweisen auf FOR-Variablen erweitert.
Sie können jetzt folgende Syntax verwenden:
%~I - Expandiert %I und entfernt alle umschließenden
Anführungszeichen (").
%~fI - Expandiert %I zu einem vollständigen Dateinamen.
%~dI - erstellt nur den Laufwerkbuchstaben von %I.
%~pI - erstellt nur den Pfad von %I.
%~nI - erstellt nur den Dateinamen von %I.
%~xI - erstellt nur die Dateierweiterung von %I.
%~sI - erstellter Pfad enthält nur kurze Dateinamen.
%~aI - erstellt die Dateiattribute von %I.
%~tI - erstellt Datum und Zeit von %I.
%~zI - erstellt die Dateigröße von %I.
%~$PATH:I - Durchsucht die in der PATH-Umgebungsvariablen
angegebenen Verzeichnisse und expandiert die erste
gefundene Datei %I zu dem vollständigen Dateinamen.
Wenn der Name der Umgebungsvariablen nicht definiert
ist oder diese Datei bei der Suche nicht gefunden wurde,
wird dieser Parameter zu einer leeren Zeichenfolge
expandiert.
Diese Parameter können auch miteinander kombiniert werden:
%~dpI - erstellt den Laufwerkbuchstaben und Pfad von %I.
%~nxI - erstellt den Dateinamen und die Dateierweiterung von %I.
%~fsI - Expandiert %I zu einem vollständigen Namen, der nur
kurze Dateinamen enthält.
%~dp$PATH:I - Durchsucht die in der PATH-Umgebungsvariablen
angegebenen Verzeichnisse nach %I und erstellt den
Laufwerkbuchstaben und Pfad der ersten gefundenen Datei.
%~ftzaI - Expandiert %I zu einer Zeile, die der Ausgabe des DIR-
Befehls entspricht.