Dateinamen per batch ändern und bestimmte Zeichenanzahl entfernen und .txt anfügen
Hallo, wieder mal kleine Frage:
Habe folgendes Anliegen.
Ich erhalte aus einem System über ein Exportscpript, Dateien erzeugt.
Diese haben keine Dateiendung, sind aber im Prinzip Textdateien.
Nun möchte ich:
aus dem existierenden Dateinamen immer die ersten 25 Stellen entfernen, und an anschließend an den verbleibenden Rest die Endung ".txt" anfügen.
Beispiel:
Die Dateien befinden sich im Ordner:
C:\Test\
Name von Beispieldateien:
C:\Test\PPExport_28102010_115412.USER
C:\Test\PPExport_28102010_115412.GRUPPEN
Gewünscht:
C:\Test\USER.txt
C:\Test\GRUPPEN.txt
Wie kann ich das lösen?
Gruß viking
Habe folgendes Anliegen.
Ich erhalte aus einem System über ein Exportscpript, Dateien erzeugt.
Diese haben keine Dateiendung, sind aber im Prinzip Textdateien.
Nun möchte ich:
aus dem existierenden Dateinamen immer die ersten 25 Stellen entfernen, und an anschließend an den verbleibenden Rest die Endung ".txt" anfügen.
Beispiel:
Die Dateien befinden sich im Ordner:
C:\Test\
Name von Beispieldateien:
C:\Test\PPExport_28102010_115412.USER
C:\Test\PPExport_28102010_115412.GRUPPEN
Gewünscht:
C:\Test\USER.txt
C:\Test\GRUPPEN.txt
Wie kann ich das lösen?
Gruß viking
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 153978
Url: https://administrator.de/contentid/153978
Ausgedruckt am: 26.11.2024 um 12:11 Uhr
5 Kommentare
Neuester Kommentar
Moin,
streng genommen haben deine beiden Beispiele aber eine Suffix.... - nur keine mit der Winblows was anfangen kann.
daher zwei/drei Gegenfragen....
Grobungetester Demoschnippsel
Der Macht nix - zeigt nur ein "was wäre wenn" an, wenn das gut aussieht, das echo vor dem Ren rausnehmen.
Gruß
streng genommen haben deine beiden Beispiele aber eine Suffix.... - nur keine mit der Winblows was anfangen kann.
daher zwei/drei Gegenfragen....
- Sind das "echte" Beispiele oder sehen die "echt" anders aus?
- Sind nur diese Dateien vorhanden?
Was passiert mit den schon gekürtzen dateinamen - bleiben die in dem Ordner?
Grob
enable delayedexpansion
for /f "tokens=1,* delims=" %%a in ('dir /b C:\Test\*') do (
set filename=%%a
if not "!filename!"=="!filename:~-25!" echo ren !filename! !filename:~-25!
)
pause
Der Macht nix - zeigt nur ein "was wäre wenn" an, wenn das gut aussieht, das echo vor dem Ren rausnehmen.
Gruß
Hallo viking!
Wenn Du "immer die ersten 25 Stellen entfernen" auch als "immer alles bis zum ersten Punkt entfernen" formulieren könntest, dann etwa so:
Die Zeile ist zur Direkteingabe in der CMD-Shell gedacht und geht davon aus, dass nur Deiner Beschreibung entsprechende Dateien im Ordner "C:\Test" enthalten sind.
Durch das "
Grüße
bastla
Wenn Du "immer die ersten 25 Stellen entfernen" auch als "immer alles bis zum ersten Punkt entfernen" formulieren könntest, dann etwa so:
for /f "tokens=1* delims=." %i in ('dir /b /a-d C:\Test\*.*') do @echo ren "%i.%j" "%j.txt"
Durch das "
echo
" wird das Umbenennen nur simuliert, und falls Du später daraus einen Batch machen wolltest, wäre jedes %i bzw %j mit doppelten Prozentzeichen zu schreiben.Grüße
bastla
Moin viking,
bitte versuche es mal mit einer Änderung der ersten Zeile, die bei T-Mo etwas mundartlich abgeschliffen ist, in
Klein-/GROSSschreibung ist egal, Hilfe zu dieser Direktive gibt es bei "setlocal /?" am CMD-Prompt.
Grüße
Biber
Um T-Mo in Schutz zu nehmen - ein handelsüblicher Oldenburger-Platt-Compiler könnte auch "enable delayedexpansion" richtig interpretieren.
bitte versuche es mal mit einer Änderung der ersten Zeile, die bei T-Mo etwas mundartlich abgeschliffen ist, in
Setlocal EnableDelayedExpansion
Klein-/GROSSschreibung ist egal, Hilfe zu dieser Direktive gibt es bei "setlocal /?" am CMD-Prompt.
Grüße
Biber
Um T-Mo in Schutz zu nehmen - ein handelsüblicher Oldenburger-Platt-Compiler könnte auch "enable delayedexpansion" richtig interpretieren.