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, 1168 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 ..
Ähnliche Inhalte
Neue Wissensbeiträge
Entwicklung

Exploit Development

Anleitung von burhanudinn123 zum Thema Entwicklung ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(1)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Linksys wrt1200ac v2 mit dd-wrt: keine vlan-einstellungen im GUI (15)

Frage von Pixi123 zum Thema Router & Routing ...

Netzwerkprotokolle
Leiten "dumme" Switches VLAN-Tags mit durch? (14)

Frage von coltseavers zum Thema Netzwerkprotokolle ...

E-Business
Wo tragt ihr eure privaten Termine ein? (13)

Frage von honeybee zum Thema E-Business ...

Windows Server
Terminalserver starten willkürlich neu (12)

Frage von thaefliger zum Thema Windows Server ...