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, 1161 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
Batch & Shell
gelöst Dateien automatisch anhand von 2 komplizierten Dateinamen-Strings verschieben (3)

Frage von cleverm zum Thema Batch & Shell ...

Batch & Shell
Umbenennen entpackter Dateien nach Dateinamen der rar- zip-Datei

Frage von windows-nutzer zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Datei: PDF Dateien verschieben, umbenennen und löschen (4)

Frage von F0rcehunter zum Thema Batch & Shell ...

Neue Wissensbeiträge
Batch & Shell

Batch - ein paar Basics die man kennen sollte

Tipp von Pedant zum Thema Batch & Shell ...

Microsoft

Restrictor: Profi-Schutz für jedes Window

(6)

Tipp von AlFalcone zum Thema Microsoft ...

Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
gelöst Benutzer lässt sich nur an einem Clientcomputer anmelden (17)

Frage von Ammann zum Thema Windows Server ...

Netzwerke
SFP Modul (miniGibic) (11)

Frage von apranet zum Thema Netzwerke ...

Batch & Shell
gelöst Gruppenzugehörigkeit von AD Usern ermitteln - die Perfektion fehlt (11)

Frage von Stefan007 zum Thema Batch & Shell ...