mixmax
Goto Top

Rename und copy

Hallo Zusammen,

ich möchte per batch Unterverzeichnisse, in denen sich jeweils gleichnamige Dateien befinden auflösen.

Das Ergebnis eines Datenbankexports ist ein Verzeichnis "Export_Datum" mit 174 Unterverzeichnissen in denen jeweils gleichnamige Dateien stehen.
Um alle Dateien gleichzeitig weiterverarbeiten zu können, suche ich nach einem batch-script, das folgendes ausführt:
1. Die Dateien in den Unterverzeichnissen so umbenennt, daß der neue Dateiname aus dem namen des Unterverzeichnisses und dem Dateinamen gebildet wird.
2. Alle Dateien in das Exportverzeichnis kopiert.
Leider sind meine Batch-Kenntnisse noch sehr gering. (Ich hoffe das ändert sich bald face-wink
Kann mir irgendjemand helfen?

Content-ID: 133118

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

Ausgedruckt am: 26.11.2024 um 04:11 Uhr

bastla
bastla 11.01.2010 um 17:47:59 Uhr
Goto Top
Hallo mixmax und willkommen im Forum!

Wenn Du Dir sicher bist, dass die Ausgangsdateien und nicht nur die Kopien umbenannt werden sollen, dann etwa so:
@echo off & setlocal
set "Basis=D:\Export_Datum"  

pushd "%Basis%"  
for /d %%i in (*.*) do for /f "delims=" %%a in ('dir /b /a-d "%%i"') do ren "%%i\%%a" "%%~nxi_%%a" && copy "%%i\%%~nxi_%%a">nul  
popd
Grüße
bastla
mixmax
mixmax 12.01.2010 um 09:26:26 Uhr
Goto Top
Hallo bastla,

herzlichen Dank! Genau so hatte ich es mir vorgestellt. Dein Hinweis auf die Kopien ist korrekt. Da der Ordner "Export_Datum" bereits eine Kopie ist und es gilt, Datenmüll zu vermeiden werde ich das copy noch durch ein move ersetzen und die dann leeren Verzeichnisse löschen. Das wird meine "Batch-Lern-Aufgabe". Diesbezüglich noch eine Frage: Kannst Du eine gute Batch-Dokumentation im Netz (wie beispielsweise selfhtml) oder auch in Buchform empfehlen?

Viele grüße
mixmax
bastla
bastla 12.01.2010 um 15:49:01 Uhr
Goto Top
Halo mixmax!

Da Du Dich für "move" entschieden hast, ließe sich das Ganze noch abkürzen:
for /d %%i in (*.*) do for /f "delims=" %%a in ('dir /b /a-d "%%i"') do move "%%i\%%a" "%%~nxi_%%a">nul
Zur Batch-Doku leider Fehlanzeige - für mich galt eigentlich immer schon (hinsichtlich Batch jedenfalls seit über 20 Jahren) das Prinzip "learning by doing"; deshalb habe ich (und tue es immer noch) von diesem Forum hier mit seinen konkreten Beispielen so viel profitiert ...

Grüße
bastla