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, 2864 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...