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, 1149 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
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...