Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch Ordner aus Dateinamen (erste 8 Zeichen) erstellen und Dateien verschieben

Frage Entwicklung Batch & Shell

Mitglied: powdi79

powdi79 (Level 1) - Jetzt verbinden

08.01.2013, aktualisiert 17:07 Uhr, 2869 Aufrufe, 4 Kommentare

Hallo

Ich muss eine Ordnerstruktur anpassen und Dateien verschieben.

Aktuell habe ich viele Ordner, in denen jeweils ca. 100 Dateien sind. Die Dateien haben beispielsweise folgende Namen und Endungen:

XYZ12345_abe.jpg
XYZ12345_1dfdf.pdf
XYZ12345-zy.xls
XYZ55555.doc
XYZ55555_abe.ppt
abcde_1.xls
abcde.doc

Nun sollen in allen Ordnern jeweils für die Dateien mit den Dateinamen XYZ* Unterordner erstellt werden, und die entsprechenden Dateien dahin verschoben werden. Die Ordnernamen sollen dabei nur die ersten 8 Zeichen der Dateinamen sein. Das Ergebnis sollte dann folgendermassen aussehen:

XYZ12345\XYZ12345_abe.jpg
XYZ12345\XYZ12345_1dfdf.pdf
XYZ12345\XYZ12345-zy.xls
XYZ55555\XYZ55555.doc
XYZ55555\XYZ55555_abe.ppt
abcde_1.xls
abcde.doc

Die Dateien, welche nicht mit XYZ beginnen, sollen nicht verschoben werden.

In folgenden Threads habe ich bereits einige Infos gefunden:
http://www.administrator.de/frage/batch-ordner-aus-dateinamen-erstellen ...
http://www.administrator.de/frage/batch-ordner-mit-dateinamen-erstellen ...

Da ich mich jedoch mit den Textfunktionen nicht auskenne, komme ich nicht mehr weiter.

Wäre super, wenn mir da jemand helfen könnte!

Gruss
Stefan
Mitglied: colinardo
08.01.2013, aktualisiert um 19:31 Uhr
Suchstring in Zeile 3 anpassen und Script in den Ordner mit den Dateien reinschmeissen

01.
@echo off 
02.
setlocal ENABLEDELAYEDEXPANSION 
03.
set suchstring=XYZ* 
04.
for /f "tokens=1 delims=" %%i IN ('dir %suchstring% /A-D /b') DO @( 
05.
	set filename=%%i 
06.
	set SHORT=!filename:~0,8! 
07.
	if not exist "!SHORT!" (md "!SHORT!") 
08.
	move "%%i" .\!SHORT! 
09.
)
Grüße Uwe
Bitte warten ..
Mitglied: powdi79
09.01.2013 um 08:02 Uhr
Guten Morgen!

Besten Dank Uwe, hat für einen Unterordner schon mal super funktioniert!

Nun muss ich das noch für 111 Unterordner machen. Diese haben folgende Struktur:

hans\peter\*
hans\philipp\*
franz\peter_meier\*
franz\werner\*

Nicht auszuschliessen ist leider auch mit Umlauten und Leerschlag, zb:

franz\hans döner\*

Ich weiss, das sollte nicht so ein Problem sein, auch für einen Laien wie mich. Falls Ihr trotzdem gerade eine einfache Erweiterung des obigen Skript wisst, wäre ich um eine Antwort froh. Ansonsten werde ich mich entsprechend reinknien

Grüsse Stefan
Bitte warten ..
Mitglied: colinardo
09.01.2013, aktualisiert um 10:57 Uhr
Also wenn ich dich richtig verstanden habe dann soll z.b. die Datei XYZ12345_test.jpg im Unterordner hans\peter\ in den Ordner hans\peter\XYZ12345\XYZ12345_test.jpg verschoben werden - oder möchtest du alle neu erzeugten Ordner mit den 8 Buchstaben in einem gemeinsamen Ordner sammeln ?

Also für die erste angesprochene Variante geht folgender Code:
Du musst noch in Zeile 3 und 4 Suchstring und Startordner (Der Ordner in dem sich die Unterordner befinden) angeben.

01.
@echo off 
02.
setlocal ENABLEDELAYEDEXPANSION 
03.
set SUCHSTRING=XYZ* 
04.
set STARTFOLDER=C:\DeinStartOrdnerOhneAnführungszeichen 
05.
cd "%STARTFOLDER%" 
06.
for /f "tokens=1 delims=" %%F IN ('dir /b /s /AD') DO @( 
07.
	cd "%%F" 
08.
	call :STARTLOOP "%%F" 
09.
10.
goto :end 
11.
 
12.
:STARTLOOP 
13.
cd %1 
14.
for /f "tokens=1 delims=" %%i IN ('dir %SUCHSTRING% /A-D /b') DO @( 
15.
	set filename=%%i 
16.
	set SHORT=!filename:~0,8! 
17.
	if not exist "!SHORT!" (md "!SHORT!") 
18.
	move "%%i" ".\!SHORT!" 
19.
20.
goto :eof 
21.
 
22.
:end 
23.
exit
Hoffe das bringt dich weiter ...
Uwe
Bitte warten ..
Mitglied: powdi79
09.01.2013 um 12:43 Uhr
Super! Hat prima geklappt. Besten Dank!

Gruss
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Dateien (PDF) umbenennen via batch, teilw. Dateinamen übernehmen, neues Präfix (6)

Frage von brause1701 zum Thema Batch & Shell ...

Batch & Shell
Batch: .rar-Pakete automatisch Ordner erstellen und verschieben (2)

Frage von BowserMD zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Ordner erstellen und verschieben (6)

Frage von Fromeonly zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Verschlüsselung & Zertifikate
gelöst Festplattenverschlüsselung im Ausland (13)

Frage von Nicolaas zum Thema Verschlüsselung & Zertifikate ...

Festplatten, SSD, Raid
gelöst Fehlerhafte Blöcke im RAID 10 (12)

Frage von Kojak-LE zum Thema Festplatten, SSD, Raid ...

Windows Server
gelöst Microsoft-Lizenz CALs und passendes Server-Betriebssystem (12)

Frage von planetIT2016 zum Thema Windows Server ...

Netzwerkgrundlagen
gelöst Cisco SG500 Series LAG hat sich von selbst umgestellt (11)

Frage von Ex0r2k16 zum Thema Netzwerkgrundlagen ...