romberto
Goto Top

Per BATCH Dateien in gleichnamigen Ordner verschieben und Ordner anhand Liste umbennen

Hallo Gemeinde,

ich habe einmal mehr ein kleines Problem und hoffe ihr könnt mir dabei helfen:

Mein Chef hat mal wieder gedacht mir wäre etwas langweilig und mich damit beauftragt die gesamten Projekte aus den 1980ern und frühen 1990ern in das aktuelle Backup einzupflegen.

Das Problem an der Sache:
Früher wurde in der Firma wohl tatsächlich auf Amigas gearbeitet. Zusätzlich wurden die Dateien wohl Intern über ein BBS verwaltet / zur Verfügung gestellt.

Daraus resultierend habe ich nun einen Batzen lose Dateien mit 8.3 Zeichenbeschränkung und eine ellenlange Liste die genau Beschreibt was in welcher Datei drin ist (glaube es ist einfach eine Filelist aus dem BBS).

Was mein Chef nun möchte ist folgendes:

Jede Datei soll in einen eigenen Ordner eingefügt werden, der wie die Beschreibung in der Liste benannt werden soll.

Ich habe mir das jetzt wie folgt gedacht:

1) Als erstes möchte ich für jede Datei einen gleichnamigen Ordner erstellen und zwar inkl. der jeweiligen Dateieendung und dort die jeweilige Datei einfügen.

Beispiel: mum-p010.lha soll in einen neuen Ordner "mum-p010.lha" verschoben werden.

Die Dateiendung ist wichtig, da es teilweise gleiche Dateinamen gibt mit anderen Endungen welches komplett andere Projekte sind (da hat damals wohl jemand etwas geschludert)

2) Dann soll Anhand der Fileliste der Ordner (und zwar nur der Ordner) umbenannt werden. Die Liste habe ich schon wiefolgt umgeschrieben:

mum-p010.lha=Reines Fantasie Projekt - mit irgendeiner Beschreibung

Ich hoffe, dass ich mein Problem ausreichend Schildern konnte und hoffe natürlich, dass mir jemand Helfen kann.


Viele Grüße

Robert

EDIT: Einen Teil konnte ich mitlerweile mittels Excel lösen und habe den Text entsprechen abgeändert!

Content-Key: 186509

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

Printed on: April 24, 2024 at 09:04 o'clock

Member: bastla
bastla Jun 14, 2012 updated at 20:30:57 (UTC)
Goto Top
Hallo romberto!

Den Zwischenschritt (Ordner gleichnamig erstellen) kannst Du Dir eigentlich sparen, da sich der neue Ordnername (aufgrund des Dateinamens) ja ohnehin direkt der Liste entnehmen lässt - daher (ungetestet) etwa so:
@echo off & setlocal
set "Ordner=D:\Ordner mit vielen Dateien"  
set "Liste=D:\Liste.txt"  

pushd "%Ordner%"  
for /f "delims=" %%i in ('dir /b/a-d') do for /f "tokens=1* delims==" %%a in ('findstr /ib "%%i" "%Liste%"') do (  
    md "%%b" 2>nul && move "%%i" "%%b"  
)
popd
Verschoben werden die Dateien nur, wenn sie in der Liste stehen und auch der Ordner erstellt werden konnte ...

Grüße
bastla
Member: romberto
romberto Jun 14, 2012 at 20:36:22 (UTC)
Goto Top
Hallo bastla,

vielen Dank! Getestet und für Gut befunden!

Nochmals Danke!

Viele Grüße

Robert