Entwicklung und Coding in verschiedenen Programmiersprachen: Assembly, C++, C#, Perl, Delphi, .NET, Visual Basic... |
|||||||
![]() |
|
|
Themen-Optionen | Thema durchsuchen |
Entwicklung und Coding in verschiedenen Programmiersprachen: Assembly, C++, C#, Perl, Delphi, .NET, Visual Basic... |
|||||||
![]() |
|
|
Themen-Optionen | Thema durchsuchen |
[Batch/Bash] - Dateien nach dateinamen in Ordner und Unterordner verschieben. |
|
|
# 1 |
|
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: Feb 2009
Internet: DSL2 16K
Beiträge: 764
Power: 15
|
Ich muss eine Menge .zip-Dateien nach folgendem Schema in Ordner und Unterordner verschieben:
Zip-Datei: 0103_1017_2 0103 ist ein Ordner, der den Ordner 10 beinhaltet. Nach diesem Schema sind noch mehr Dateien vorhanden. Der rote teil des Dateinamens steht für den Ordner, der Blaue für den Entsprechenden Unterordner, die letzten paar Zeichen sind unwichtig. Die Dateien und die Ordner sind im Gleichen Pfad untergebracht. Jetzt bräuchte ich eine Möglichkeit das Ganze schnell und automatisch zu machen, da 1900 Dateien von Hand verschieben ziemlich umständlich und zeitaufwendig ist.:baby: Gibt es da eine Lösung mit VBS oder Batch? wenn nicht, womit sonst? BWs gehen natürlich raus ![]() ![]() Y0u want y0ur freed0m? Take it. That's what I'm c0unting 0n
I used t0 want y0u dead, but n0w I 0nly want y0u g0ne. |
|
|
|
|
# 2 |
|
Don Szene
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: Sep 2005
Beiträge: 139
Power: 19
|
Grundsätzlich kannst du das mit jeder Programmiersprache machen. Am besten sind dafür jedoch Skriptsprachen geeignet. Ich denke über mehr oder weniger umständliche Wege kann man es auch mit einem Batch-Skript machen, da bin ich nicht so bewandert. Da ich meist in C++ programmiere, würde ich es darin lösen. Das wäre aber ein Overkill, du könntest es ja mal in Python/Perl oder sogar in PHP versuchen. ;-)
Vorgehen ist klar: 1) Alle Dateinamen der .zip Dateien im current Verzeichnis einlesen und in Array/Vector speichern 2) Jeden Eintrag im Array durchgehen 2.1) Eintrag extrahieren ("_" kannst du als Token nehmen) 2.2) per system("mkdir token[0]"); Verzeichnis anlegen (je nach Sprache unterschiedlich) (falls Verzeichnis schon da ist, überspringen) 2.3) Unterverzeichnis anlegen nach selben Schema (substr(token[1], 0, 2)) 2.4) Den Eintrag in das neue Unterverzeichnis per System-Befehl kopieren/verschieben 2.5) gegebenfalls Dateiname umbenennen Edit: Bash Lösungen sind natürlich auch möglich. Mittels "ls -x | grep .zip" kannst du in einer for-Schleife jeden Dateinamen durchgehen und z.B. per awk/grep die nötigen Informationen zum Verschieben extrahieren. Inwiefern man das auf ein Batch-Skript anwendet, müssen dir andere sagen. ![]() |
|
|
AW: Dateien nach dateinamen in Ordner und Unterordner verschieben. |
|
|
# 3 |
|
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: Feb 2009
Internet: DSL2 16K
Beiträge: 764
Power: 15
Themenstarter |
Danke
![]() Ich werds mal in Perl probieren, ist die Sprache in der ich noch am meisten kann ![]() falls schwierigkeiten auftreten melde ich mich nochmal BW ist raus ![]() Edit 1: Hat geklappt, Danke nochmals ![]() Edit 2: Ist erledigt, closed^^ ![]() Y0u want y0ur freed0m? Take it. That's what I'm c0unting 0n
I used t0 want y0u dead, but n0w I 0nly want y0u g0ne. |
|
|
![]() |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Batch] - Ordner Überwachung auf Dateien und verschieben | Soji | Programmierung & Entwicklung | 7 | 30.03.2012 12:31 |
| Suche Tool, das Ordner und Dateinamen abspeichert | fc-volker | Software | 3 | 24.01.2011 11:05 |
| doppelte dateien erkennen und zahlen vor dateinamen entfernen | der_erich | Filesharing | 6 | 07.05.2009 19:52 |
| Bei Vista den "Eigene Dateien" Ordner auf andere Partition verschieben? | countermax | Windows | 7 | 18.03.2007 11:10 |
| Wie kann ich in eine Image noch Ordner und Dateien einfugen | hhtoprakhh | Rippen & Brennen | 8 | 11.06.2006 01:44 |
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:11 Uhr. |