Wie kann ich mit einer .bat Datei die Namen verschiedener Dateien austauschen?
OS: Windows XP 32 bit
Batch-Neuling
Hallo,
ich stehe vor folgendem Problem
In einem Ordner liegen z.B. 3 Dateien mit den Namen:
slide1.jpg
slide2.jpg
slide3.jpg
Außerdem ein Verzeichnis namens "old".
Dort befinden sich ebenfalls 3 Dateien mit kryptischen Namen, z.B.:
1_1_f09f7f84i3n.jpg
1_2_p9r1z5b8c2.jpg
2_1_q1v9h3j7k6.jpg
Nun möchte ich die Dateien vom Hauptordner (slide1.jpg, ...) in die Dateien aus dem "old" Ordner umbenennen (slide1.jpg soll 1_1_f09f7f84i3n.jpg heißen, usw.).
Am liebsten wäre mir eine .bat Datei die das automatisch macht.
Mein Lösungsansatz:
Die Dateinamen in zwei Textdateien schreiben
Code:
@echo off
dir *.jpg /b >rename.txt
dir old /b >original.txt
und anschließend umbenennen... und hier ist auch das Problem:
FOR /F %%i in (rename.txt) do (
FOR /F %%j in (original.txt) do (
SET FILES=%FILES% %%j
echo %%j
)
echo ren %%i
)
Ich müsste irgendwie die Variable %%j speichern können um sie unten ans %%i anzuhängen...aber das funktioniert nicht. Habt ihr eine Idee?
Batch-Neuling
Hallo,
ich stehe vor folgendem Problem
In einem Ordner liegen z.B. 3 Dateien mit den Namen:
slide1.jpg
slide2.jpg
slide3.jpg
Außerdem ein Verzeichnis namens "old".
Dort befinden sich ebenfalls 3 Dateien mit kryptischen Namen, z.B.:
1_1_f09f7f84i3n.jpg
1_2_p9r1z5b8c2.jpg
2_1_q1v9h3j7k6.jpg
Nun möchte ich die Dateien vom Hauptordner (slide1.jpg, ...) in die Dateien aus dem "old" Ordner umbenennen (slide1.jpg soll 1_1_f09f7f84i3n.jpg heißen, usw.).
Am liebsten wäre mir eine .bat Datei die das automatisch macht.
Mein Lösungsansatz:
Die Dateinamen in zwei Textdateien schreiben
Code:
@echo off
dir *.jpg /b >rename.txt
dir old /b >original.txt
und anschließend umbenennen... und hier ist auch das Problem:
FOR /F %%i in (rename.txt) do (
FOR /F %%j in (original.txt) do (
SET FILES=%FILES% %%j
echo %%j
)
echo ren %%i
)
Ich müsste irgendwie die Variable %%j speichern können um sie unten ans %%i anzuhängen...aber das funktioniert nicht. Habt ihr eine Idee?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 133567
Url: https://administrator.de/forum/wie-kann-ich-mit-einer-bat-datei-die-namen-verschiedener-dateien-austauschen-133567.html
Ausgedruckt am: 27.04.2025 um 16:04 Uhr
2 Kommentare
Neuester Kommentar
Hallo KintaroOe und willkommen im Forum!
Unter der Voraussetzung, dass sich im "old"-Verzeichnis mindestens so viele Dateien wie im Hauptverzeichnis befinden und die Zuordnung anhand der alphabetischen Sortierung erfolgen kann, etwa so:
Wegen des "
Grüße
bastla
Unter der Voraussetzung, dass sich im "old"-Verzeichnis mindestens so viele Dateien wie im Hauptverzeichnis befinden und die Zuordnung anhand der alphabetischen Sortierung erfolgen kann, etwa so:
@echo off & setlocal
set "Hauptordner=D:\Haupt"
set "Unterordner=D:\Haupt\old"
set "Typ=jpg"
set "Liste=%temp%\Namensliste_old.txt"
dir /b /a-d /on "%Unterordner%\*.%Typ%" 2>nul|findstr /n "^">"%Liste%"
pushd "%Hauptordner%"
for /f "tokens=1* delims=:" %%i in ('dir /b /a-d /on "%Hauptordner%\*.%Typ%" 2^>nul^|findstr /n "^"') do (
for /f "tokens=1* delims=:" %%a in ('findstr /b "%%i:" "%Liste%"') do if "%%b" neq "" echo ren "%%j" "%%b"
)
popd
del "%Liste%"
pause
echo
" vor dem "ren
" wird die Umbenennung (zum Testen) erst einmal nur angezeigt - wenn das Ergebnis vernünftig aussieht, dieses "echo
" (und "pause
" am Ende) einfach entfernen ...Grüße
bastla