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

Dateien in Unterordner anhand Dateinamen mit Trennzeichen verschieben

Frage Entwicklung Batch & Shell

Mitglied: woswasih

woswasih (Level 1) - Jetzt verbinden

16.06.2014, aktualisiert 18.06.2014, 1157 Aufrufe, 2 Kommentare

Grüß Euch!
Ich glaub ich habe gerade eine Knopf im Kopf und stehe vor folgenden Problem:

Ordner mit hunderten Dateien mit Folgenden Aufbau: "Typ-Gruppe-Gruppe2-Inhalt.pdf (Teilweise auch mehr oder Weniger Gruppen)
Also Zb: "Audi-A4-Motor-Batterie.pdf"
Diese Datien sollen immer in den jeweiligen Ordner und Unterordner verschoben welcher in dem Beispiel wie Folgt aussieht:
"\Audi\A4\Motor\Batterie\"

Habe folgendes Script wälches eigentlich ganz gut funtkioniert, jedoch das letzte also den Ordner "Batterie" ignoriert...

01.
@echo off  
02.
set Quelle=C:\Datein\ 
03.
 
04.
for /f "delims=" %%i in ('dir /b /a-d "%Quelle%*-*.*" 2^>nul') do call :copy "%%i" 
05.
 
06.
:copy 
07.
For /f "delims=- tokens=1,2,3,4,5" %%i in (%1) do (  
08.
	Set "ordner1=%%i"   
09.
	Set "ordner2=%%j"  
10.
	Set "ordner3=%%k"  
11.
	Set "ordner4=%%l" 
12.
	Set "ordner5=%%m" 
13.
14.
 
15.
echo. %ordner1% |find /i "." 
16.
IF %errorlevel%==0 goto :jump 
17.
 
18.
echo. %ordner2% |find /i "." 
19.
IF %errorlevel%==0 goto :nr1 
20.
 
21.
echo. %ordner3% |find /i "." 
22.
IF %errorlevel%==0 goto :nr2 
23.
 
24.
echo. %ordner4% |find /i "." 
25.
IF %errorlevel%==0 goto :nr3 
26.
 
27.
echo. %ordner5% |find /i "." 
28.
IF %errorlevel%==0 goto :nr4 
29.
 
30.
:nr1 
31.
	Set pfad=%ordner1%\  
32.
	IF NOT exist "%pfad%" md "%pfad%" 
33.
	MOVE /-Y "%~1" "%pfad%" 
34.
	goto :jump	 
35.
 
36.
:nr2 
37.
	Set pfad=%ordner1%\%ordner2%\ 
38.
	IF NOT exist "%pfad%" md "%pfad%" 
39.
	MOVE /-Y "%~1" "%pfad%" 
40.
	goto :jump 
41.
 
42.
:nr3 
43.
	Set pfad=%ordner1%\%ordner2%\%ordner3%\ 
44.
	IF NOT exist "%pfad%" md "%pfad%" 
45.
	MOVE /-Y "%~1" "%pfad%" 
46.
	goto :jump 
47.
 
48.
:nr4 
49.
	Set pfad=%ordner1%\%ordner2%\%ordner3%\%ordner4%\ 
50.
	IF NOT exist "%pfad%" md "%pfad%"  
51.
	MOVE /-Y "%~1" "%pfad%" 
52.
	goto :jump 
53.
 
54.
:jump
Hoffe ihr habt einen Tipp für mich!
Danke und LG!
Mitglied: bastla
LÖSUNG 16.06.2014, aktualisiert 18.06.2014
Hallo woswasih!

Ich würde das etwa so versuchen:
01.
@echo off & setlocal 
02.
set "Quelle=C:\Datein" 
03.
 
04.
for /f "delims=" %%i in ('dir /b /a-d "%Quelle%\*-*.*" 2^>nul') do set "Name=%%~ni" & call :ProcessFile "%%i" 
05.
goto :eof 
06.
 
07.
:ProcessFile 
08.
set "Pfad=%Quelle%\%Name:-=\%" 
09.
md "%Pfad%" 2>nul 
10.
move %1 "%Pfad%\" 
11.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: woswasih
18.06.2014 um 10:02 Uhr
Danke!
Habe zwar mittlweile meinen Lösungsweg angepasst gehabt, jedoch ist deiner zig fach schneller!!

Besten dank nochmal!
Bitte warten ..
Neuester Wissensbeitrag
Microsoft Office

MS Office Excel - Formel wird angezeigt, aber nicht berechneter Wert!

Tipp von holli.zimmi zum Thema Microsoft Office ...

Ähnliche Inhalte
Batch & Shell
gelöst Dateien automatisch anhand von 2 komplizierten Dateinamen-Strings verschieben (3)

Frage von cleverm zum Thema Batch & Shell ...

Batch & Shell
Dateien verschieben über die shell mit bashscript (8)

Frage von rababar2014 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Hyper-V
gelöst Reiner Hyper- V Server oder lieber Rolle (21)

Frage von Winuser zum Thema Hyper-V ...

Exchange Server
Bestehende eMails autoamatisch weiterleiten (21)

Frage von metal-shot zum Thema Exchange Server ...

SAN, NAS, DAS
gelöst Synology Version 6.1 Probleme (18)

Frage von Hendrik2586 zum Thema SAN, NAS, DAS ...

Router & Routing
gelöst IP Kamera für drei unabhängige Netzwerke (16)

Frage von ProfessorZ zum Thema Router & Routing ...