Hallo Ich möchte in einem Folder mit einigen 1000 Files Dateitypen automatisch in entsprechende folder verschieben lassen. Also *.bmp in Folder BMP, *.doc in Folder DOC usw wie bekomm ich das hin?
Kommandozeile oder batch-file mit den Befehlen.. Ich gehe davon aus, dass es sich um Windows handelt move /y "Pfad Ordner A\*\*.bmp" "Pfad Ordner B"
Martin schrieb: > Was machen eigentlich MAC user? Jeder, der ein Gerät mit Netzwerkinterface nutzt, ist ein "MAC user". Deswegen hat auch jedes dieser Geräte eine MAC-Adresse. Oder meinst Du Menschen, die mit OS X/macOS arbeiten? Die können, wie unter unixoiden Betriebssystemen üblich, sich eine der üblichen Shells aussuchen, standardmäßig ist's die Bash. Ansonsten kann man auch den Automator verwenden, und damit auf standardisierte Weise Aktionen im Finder und anderen Programmen automatisieren.
ein anderer Gast schrieb: > Ich gehe davon aus, dass es sich um Windows handelt > > move /y "Pfad Ordner A\*\*.bmp" "Pfad Ordner B" ja, das ist schon klar. Aber hierbei wird für jeden Typ eine Befehlszeil benötigt. Gerade dies wollte ich vermeinden. Bei über 100 versch. Dateitypen wird es zu umständlich
Dann schreib' Dir ein Skript dafür. Kann man in VB-Script machen, das versteht von Hause aus jedes Windows. Mit kruder Syntax kann man das aber auch direkt als Batch für cmd.exe schreiben. Oder man nimmt die "PowerShell", die bei neueren Windows-Versionen vorhanden ist, die bietet weitere Möglichkeiten für Skriptsteuerung.
Falls du in deinem Windows eine Bash installiert hast (sollte man eigentlich immer haben ;-)):
1 | #!/bin/bash
|
2 | for file in * .*; do |
3 | if [ -f "$file" ]; then |
4 | ext=${file##*.} |
5 | [ "$ext" == "$file" ] && ext="" |
6 | dir=${ext:-noext} |
7 | mkdir -p "$dir" |
8 | mv -i "$file" "$dir" |
9 | fi
|
10 | done
|
Vor dem Aufruf:
1 | $ tree -a |
2 | . |
3 | ├── .huhu |
4 | ├── bild1.bmp |
5 | ├── bild2.bmp |
6 | ├── datei1 |
7 | ├── datei2. |
8 | ├── prog1.c |
9 | ├── prog2.c |
10 | ├── text.alt.doc |
11 | ├── text1.doc |
12 | └── text2.doc |
13 | |
14 | 0 directories, 10 files |
Nach dem Aufruf:
1 | $ tree -a |
2 | . |
3 | ├── bmp |
4 | │ ├── bild1.bmp |
5 | │ └── bild2.bmp |
6 | ├── c |
7 | │ ├── prog1.c |
8 | │ └── prog2.c |
9 | ├── doc |
10 | │ ├── text.alt.doc |
11 | │ ├── text1.doc |
12 | │ └── text2.doc |
13 | ├── huhu |
14 | │ └── .huhu |
15 | └── noext |
16 | ├── datei1 |
17 | └── datei2. |
18 | |
19 | 5 directories, 10 files |
Die benötigten Unterverzeichnisse werden automatisch angelegt. Alle Dateien ohne Extension werden ins Verzeichnis noext verschoben. Das Skript kann problemlos wiederholt aufgerufen werden, wenn bspw. im Hauptverzeichnis neue Dateien hinzukommen. Existiert eine zu verschiebende Datei bereits in dem entsprechenden Unterverzeichnis, wird abgefragt, ob die bestehende Datei überschrieben werden soll. Möglicherweise hat das Skript noch Bugs, die bspw. bei ganz seltsamen Dateinamen auftreten. Jeder, der das Skript benutzt, ist deswegen angehalten, es auch zu verbessern ;-) Wer Windows nutzt und keine Bash installieren möchte, kann das Skript sicher ganz leicht für die Powershell umschreiben.
:
Bearbeitet durch Moderator
Klaus schrieb: >ja, das ist schon klar. Aber hierbei wird für jeden Typ eine Befehlszeil >benötigt. Geht auch mit einer *.BAT Datei. Nimm einen Texteditor der reinen Text erzeugen kann, da schreibst du deine ganzen Befehlszeilen rein und speichers das dann zum Beispiel als "kopieren.bat ab" und führst diese Datei danach aus.
Beitrag #5150645 wurde vom Autor gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.