Filetypen in eigene Unterverzeichnisse per Batch
Servus, liebe Gemeinde!
Ich habe das "Problem", daß ich für bestimmte Filetypen Unterverzeichnisse erstellen will und die jeweilige Filetypen dann in die Unterverzeichnisse verschieben will. Zusätzlich sollen bestimmet Files nach dem Mutterverzeichnis benannt werden.
Konkret wäre es z.B. VORHER so:
Verzeichnis\bild 1.bmp
Verzeichnis\text 1.rtf
NACHHER soll es dann so aussehen:
Verzeichnis\bitmaps\bild 1.bmp
Verzeichnis\Textfiles\Verzeichnis.rtf
Bis zum Erstellen der Verezichnisse bin ich ja bereits gekommen (per copy & paste & modifizieren...). Wäre dieser Zweizeiler:
Aber weiter komme ich nicht, da ich von Batchprogrammierung nicht allzu viel Ahnung habe (trotz 34 Jahre Computererfahrung - wie ich zu meiner Schande zugeben muß).
Wäre großartig, wenn mir hier geholfen werden könnte!
Ich habe das "Problem", daß ich für bestimmte Filetypen Unterverzeichnisse erstellen will und die jeweilige Filetypen dann in die Unterverzeichnisse verschieben will. Zusätzlich sollen bestimmet Files nach dem Mutterverzeichnis benannt werden.
Konkret wäre es z.B. VORHER so:
Verzeichnis\bild 1.bmp
Verzeichnis\text 1.rtf
NACHHER soll es dann so aussehen:
Verzeichnis\bitmaps\bild 1.bmp
Verzeichnis\Textfiles\Verzeichnis.rtf
Bis zum Erstellen der Verezichnisse bin ich ja bereits gekommen (per copy & paste & modifizieren...). Wäre dieser Zweizeiler:
for /f "delims=" %%a IN ('dir /b "*.*"') do md "%%a\Bitmaps"
for /f "delims=" %%a IN ('dir /b "*.*"') do md "%%a\Textfiles"
Aber weiter komme ich nicht, da ich von Batchprogrammierung nicht allzu viel Ahnung habe (trotz 34 Jahre Computererfahrung - wie ich zu meiner Schande zugeben muß).
Wäre großartig, wenn mir hier geholfen werden könnte!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 7860728957
Url: https://administrator.de/contentid/7860728957
Ausgedruckt am: 24.11.2024 um 17:11 Uhr
2 Kommentare
Neuester Kommentar
Hi
powershell ist für sowas viel besser geeignet. Lasst Batch endlich sterben
powershell ist für sowas viel besser geeignet. Lasst Batch endlich sterben
#Hashtable um Dateiendungen einem Ordner zuzuordnen
$hashtable = @{
"*.rtf" = "Textfiles"
"*.txt" = "Textfiles"
"*.bmp" = "Bitmaps"
"*.jpg" = "Images"
"*.gif" = "Images";
}
#Pfad in dem gesucht wird
$source = "C:\temp"
#Schleife um die Hashtable zu durchlaufen
foreach ($key in $hashtable.GetEnumerator()) {
#Zielordner zusammenbauen
$destination = "$($source)\$($key.value)"
#Source Dateiendungen im Sourceordner zusammenbauen
$sourcefiles="$($source)\$($key.key)"
#Prüfen ob Ordner bereits existiert
If(!(Test-Path -PathType container $destination))
{
#Falls nicht, Ordner anlegen
New-Item -ItemType Directory -Path $destination
}
#Und die Dateien dann verschieben
Move-Item -Path $sourcefiles -Destination $destination
}
Falls du in das Thema mit den Dateitypen etwas tiefer einsteigen willst @Rotnasenkater, oder falls hier irgendjemand mal mit der Suche drauf stößt ;) - dann gerne mal unter dem Begriff "Magic Numbers" suchen. Oder hier der Link zu Wiki:
https://en.wikipedia.org/wiki/List_of_file_signatures
Worum es da geht, falls du da noch nicht so tief drin bist: Was passiert mi einer *.exe Datei wenn sie in *.jpg umbenannt wird? Sie wird als jpg-File erkannt obwohl der eigentliche Inhalt ja eine exe ist und man dann zwar die Fileendings korrekt gefiltert hätte, jedoch aber nicht das eigentliche File identifzieren konnte.
Bei den "Magic Numbers" geht es darum bei Files die Signatur des Headers auszulesen. Hier erkennt man anhand gewisser Zeichenfolgen, was für ein Dateityp das wirklich ist und kann danach filtern, sortieren oder unerwünschte Formate rausschmeisen.
https://en.wikipedia.org/wiki/List_of_file_signatures
Worum es da geht, falls du da noch nicht so tief drin bist: Was passiert mi einer *.exe Datei wenn sie in *.jpg umbenannt wird? Sie wird als jpg-File erkannt obwohl der eigentliche Inhalt ja eine exe ist und man dann zwar die Fileendings korrekt gefiltert hätte, jedoch aber nicht das eigentliche File identifzieren konnte.
Bei den "Magic Numbers" geht es darum bei Files die Signatur des Headers auszulesen. Hier erkennt man anhand gewisser Zeichenfolgen, was für ein Dateityp das wirklich ist und kann danach filtern, sortieren oder unerwünschte Formate rausschmeisen.