Top-Themen

Aktuelle Themen (A bis Z)

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 Ordner nach Dateinamen anlegen und in bestimmtes verzeichnis kopieren

Mitglied: Spidi-25

Spidi-25 (Level 1) - Jetzt verbinden

09.09.2010, aktualisiert 20:27 Uhr, 4730 Aufrufe, 13 Kommentare

Moin zusammen

ich benötige wieder mal einen Code für folgende Aufgabe,


z.B.:

Steffi_Bild1.jpg
Steffi_Bild2.jpg
Steffi_Bild3.jpg

Ordner auf z.B. K:\Bilder\Steffi\ anlegen und alle 3 Dateien rein kopieren

Karl_Skiurlaub_Bild1.jpg
Karl_Skiurlaub_Bild2.jpg
Karl_Skiurlaub_Bild3.jpg
Karl_Skiurlaub_Bild4.jpg

Ordner auf z.B. K:\Bilder\Karl_Skiurlaub\ anlegen und alle 4 Dateien rein kopieren


Weihnachten_in_Köln.jpg

Ordner auf z.B. K:\Bilder\Weihnachten_in_Köln\ anlegen und Datei rein kopieren


die CMD möchte ich direkt mit einem File Commander aufrufen.



Thx
Mitglied: 60730
09.09.2010 um 12:23 Uhr
Moin,

das ganze möchte ich direkt mit einem Commander aufrufen also ohne die Zeile

Ich könnte dir mit einem Major Tom aushelfen, aber der hätte sehr wahrscheinlich auch eine Zeile mit Set drin.
Commander James Bond weilt ja gerade in der Drehpause

Bitte schreib das mal um, denn u.a das erste Beispiel geht von
  • 123_456 aus und 123 ist das ziel in k:\bilder
das zweite von

  • 123_456_789 aus und 123_456 ist das ziel in k:\bilder
last but not Least
  • 123_456_789_0ab aus und 123_456_789 ist das ziel in k:\bilder

Also immer bis zum letzten _

Gruß

edit
Ausführen möchte ich es mit dem File Commander
sorry -einer von uns beiden kann sich nicht richtig ausdrücken...
/edit
Bitte warten ..
Mitglied: Spidi-25
09.09.2010 um 12:33 Uhr
Ausführen möchte ich es mit dem File Commander

ich muss noch was korregieren

es gibt manchmal nur ein Foto und dann hat es folgende Dateinamen:

Urlaub_Griechenland.jpg ohne Bild am ende

dann soll ein Ordner Urlaub_Griechenland angelegt werden

Thx
Bitte warten ..
Mitglied: Spidi-25
09.09.2010 um 20:57 Uhr
mit folgendem code wird werden die Daten auf K:\Bilder abgelegt, aber es wird für jede Datei ein Ordner erstellt und das ist falsch.

01.
@echo off & setlocal 
02.
set "Ziel=K:\Bilder\" 
03.
  
04.
for %%t in (jpg) do (  
05.
    for /f %%i in ('dir /b /on /a-d *.%%t') do (  
06.
 
07.
        for /f "tokens=1-6 delims= " %%a in ("%%~ni") do (   
08.
            md "%Ziel%%%a" 2>nul  
09.
            copy "%%i" "%Ziel%%%a">nul  
10.
            
11.
        )  
12.
    )  
13.
)

thx
Bitte warten ..
Mitglied: 60730
09.09.2010 um 22:23 Uhr
moin,


Ich tippte dich auf ein paar ungereimtheiten

  • was ist denn nun dein File Commander?
  • Nimm einfach mal den Code auseinander und werf vor allem @echo off raus.
  • Wenn du Dateien mit einem _ und welche mit zwei _ _ und drei ___ usw. hast mußt du diese auch getrennt verhackstückeln.

Die Tokens 1-6 sind doch von wem wofür auch immer willkürlich gesetzt und das mußt du anpassen.

for /f %%i in ('dir /b /on /a-d *.%%t') do (

Demo 4n Promt
echo hallo>ha_llo.txt
echo hallo>ha_ll_o.txt
echo hallo>h_a_llo.txt
echo hallo>h_a_ll_o.txt

for /f "tokens=1-4 delims=_" %i in ('dir /b /on /a-d *_*_*_*.txt') do echo %i_%j_%k%l
for /f "tokens=1-4 delims=_" %i in ('dir /b /on /a-d *_*_*_*.txt') do md %i_%j_%k\
for /f "tokens=1-4 delims=_" %i in ('dir /b /on /a-d *_*_*_*.txt') do move %i_%j_%k_%l \%i_%j_%k\%l

Ganz ohne echo off

Und das muß natürlich rückwärts aufgenudelt werden, denn

  • dir /b /on /a-d *_*.txt' findet alle
  • dir /b /on /a-d *_*_*.txt' findet nur die nicht, die nur 1_ haben
  • dir /b /on /a-d *_*_*_*.txt' findet nur die nicht, die weniger als 3_ haben

Deshalb der Demo 4n Promt, denn wenn du zuerst die mit drei _ wegmovst, bleiben später nur noch die mit 2 dann einem übrig.


Gruß
Bitte warten ..
Mitglied: Spidi-25
10.09.2010 um 11:07 Uhr
File Commander ist so etwas in der art http://www.efsoftware.com/cw/d.png

mit den Tipps bekomme ich nichts vernünftiges hin, bitte um weitere Hilfe.


Gruß
Bitte warten ..
Mitglied: bastla
10.09.2010 um 18:31 Uhr
Hallo Spidi-25!

Unter der Annahme, dass Du alle Bilder markierst und dann den Batch aufrufst, könnte das etwa so gehen:
01.
@echo off & setlocal 
02.
set "Ziel=K:\Bilder" 
03.
 
04.
:Loop 
05.
if [%1]==[] goto :eof 
06.
echo %~n1|findstr /e "_Bild[0-9]*">nul||( 
07.
    set "Ordner=%~n1" 
08.
    goto :Kopieren 
09.
10.
 
11.
set "Name=%~n1" 
12.
for %%i in (%Name:_=;%) do set "Entfernen=%%i" 
13.
call set "Ordner=%%Name:_%Entfernen%=%%" 
14.
 
15.
:Kopieren 
16.
xcopy %1 "%Ziel%\%Ordner%\" 
17.
 
18.
shift 
19.
goto :Loop
Kurze Erklärung zum Ablauf:
  • Da die Bilder als einzelne Paramter beim Aufruf ankommen, wird nach der Bearbeitung jedes einzelnen Bildes mit "shift" die Parameterliste verschoben, sodass das nächste Bild als %1 zur Verfügung steht - die solange, bis %1 "leer" ist.
  • Wenn der Name ("%~n1") des Bildes nicht auf "Bild" (+ eine oder mehrere Ziffern) endet, kann der Name unmittelbar als Ordnername verwendet werden.
  • Da im anderen Fall die Anzahl der durch "_" getrennten Namensbestandteile nicht bekannt ist, es aber ohnehin nur darum geht, den letzten davon zu elimieren, kann der Name durch das Ersetzen der "_" durch ";" (hier könnte auch ein Leerzeichen verwendet werden) in Einzelteile zerlegt werden - durch die Schleife wird jeder dieser Einzelteile als %Entfernen% gespeichert, was aufgrund des automatischen Überschreibens der vorigen Variableninhaltes dazu führt, dass nach der Schleife die Variable %Entfernen% den letzten Bestandteil, also etwa "Bild1", enthält.
  • Für die Ermittlung des Ordnernamnes wird der in %Entfernen% gespeicherte Teil dann (zusammen mit dem davor befindlichen "_") durch "Nichts" ersetzt.
  • Schließlich kann durch die Verwendung von "xcopy" beim Kopieren automatisch der gewünschte Zielpfad erstellt werden.

Grüße
bastla
Bitte warten ..
Mitglied: Spidi-25
10.09.2010 um 21:13 Uhr
Hallo bastla

aus irgend einem Grund passiert nichts, das Fenster wird für ca. eine 1/4 Sekunde geöffnet und wieder geschlossen, auf K:\Bilder wird auch nichts neues angelegt!

Gruß
Spidi-25
Bitte warten ..
Mitglied: bastla
10.09.2010 um 21:21 Uhr
Hallo Spidi-25!

Dann ändere mal die ersten 5 Zeilen auf
01.
@echo on & setlocal 
02.
set "Ziel=K:\Bilder" 
03.
 
04.
:Loop 
05.
if [%1]==[] pause & goto :eof 
06.
if /i "%~x1" neq ".jpg" shift & goto :Loop
Die (neue) Zeile 6 soll als Absicherung dienen, sodass nur ".jpg"-Dateien verarbeitet werden - wenn das nicht nötig oder erwünscht ist, einfach weglassen ...

Stimmt übrigens die Annahme, dass der Batch für markierte Dateien aufgerufen wird? Wenn nicht, sondern der Batch einen Ordner als Aufrufparameter erhält, dann eher so (und wenn's nicht klappen sollte, ebenfalls mit "echo on" und einer "pause" zwischen Zeile 4 und 5 nachschauen, was da los ist):
01.
@echo off & setlocal 
02.
set "Ziel=K:\Bilder" 
03.
 
04.
for %%i in ("%~1\*.jpg") do call :ProcessFile "%%i" 
05.
goto :eof 
06.
 
07.
:ProcessFile 
08.
echo %~n1|findstr /i /e "_Bild[0-9]*">nul||( 
09.
    set "Ordner=%~n1" 
10.
    goto :Kopieren 
11.
12.
 
13.
set "Name=%~n1" 
14.
for %%i in (%Name:_=;%) do set "Entfernen=%%i" 
15.
call set "Ordner=%%Name:_%Entfernen%=%%" 
16.
 
17.
:Kopieren 
18.
xcopy %1 "%Ziel%\%Ordner%\" 
19.
 
20.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: Spidi-25
10.09.2010 um 21:49 Uhr
Hallo bastla

läuft immer noch nicht, es kommt "Drücken Sie eine beliebige Taste" nach dem drücken wird das Fenster geschlossen.

die Dateien werden nicht markiert, es sollen alle im Ordner befindlichen .jpg´s verarbeitet werden,

im Prinzip ungefähr so laufen wie der Code oben, nur das es nicht für jede Datei einen Ordner erstellt!

Gruß
Spidi-25
Bitte warten ..
Mitglied: bastla
10.09.2010 um 21:57 Uhr
Hallo Spidi-25!

Versuchen wir es mit folgender Zeile 4 (für meine letzte Version):
01.
for %%i in (*.jpg) do call :ProcessFile "%%i"
Wenn ich das aus einem Deiner anderen Threads inzwischen richtig herausgelesen habe, wird beim Aufruf kein Parameter übergeben, aber als aktueller Ordner der in Deinem Commander Gewählte verwendet ...

Grüße
bastla
Bitte warten ..
Mitglied: pieh-ejdsch
10.09.2010 um 22:50 Uhr
moin Spidi-25,

vllt tut es dies hier
01.
@echo off 
02.
 
03.
set Woher="D:\Bilder" 
04.
set "Dorthin=K:\Bilder" 
05.
 
06.
::für einen Test - zum nichttesten set "TEST=echo" zu set "TEST=" ändern oder Zeile löschen 
07.
set "TEST=echo" 
08.
 
09.
pushD %woher% 
10.
for %%i in ("*_*.jpg" "ForLastAction_Picture.jpg") do ( 
11.
	set "In=%%~i" 
12.
	set "VZ=" 
13.
	setlocal enabledelayedexpansion 
14.
	set "Out=!In:_=" "!" 
15.
	for /f "delims=*" %%h in ("!OUT!") do (endlocal 
16.
		for %%j in ("%%h") do ( 
17.
			if not "%%~nj%%~xi"=="%%~j" (setlocal enabledelayedexpansion 
18.
				if defined VZ (for /f "delims=*" %%a in ("!VZ!") do endlocal&set "VZ=%%a_%%~j" 
19.
				) else endlocal&set "VZ=%%~j" 
20.
			) else (setlocal enabledelayedexpansion 
21.
				for /f "tokens=1-3 delims=?" %%a in ("!VZ!?!VZOld!?!FileOLd!") do (endlocal 
22.
					if defined VZOld (if "%%a"=="%%b" (set "Old=1" 
23.
							if not exist "%Dorthin%\%%b\" %TEST% md "%Dorthin%\%%b\" && %TEST% move "%%b_%%c" "%Dorthin%\%%b\%%c" 
24.
						) else ( 
25.
							if defined Old (set "Old=" 
26.
								if not exist "%Dorthin%\%%b\" %TEST% md "%Dorthin%\%%b\" && %TEST% move "%%b_%%c" "%Dorthin%\%%b\%%c" 
27.
							) else for %%k in ("%%c") do if not exist "%Dorthin%\%%b_%%~nk\" %TEST% md "%Dorthin%\%%b_%%~nk\" && %TEST% move "%%b_%%~k" "%Dorthin%\%%b_%%~nk\%%~xk"  
28.
					)	) 
29.
					set "VZOLD=%%a" 
30.
					set "FileOld=%%~j" 
31.
)	)	)	)	) 
32.
popD&pause&goto :eof
Gruß Phil
Bitte warten ..
Mitglied: Spidi-25
10.09.2010 um 23:18 Uhr
Hallo bastla

mit der neuen Zeile 4 hat es geklappt, wie immer Perfekt vielen vielen dank!!!!

mit der vorherigen Zeile 4, wurde ein Bild von D:\ (es befand sich nur ein Bild in D:\) obwohl ich mich im Ordner D:\Bilder\Test befand nach K:\Bilder\Ordnernamen=Bildname Kopiert.

Aber es läuft ja jetzt perfekt Thx.

Grüße
Spidi-25
Bitte warten ..
Mitglied: bastla
11.09.2010 um 09:43 Uhr
Hallo Spidi-25!

Schön, dass es doch noch geklappt hat.
mit der vorherigen Zeile 4, wurde ein Bild von D:\ (es befand sich nur ein Bild in D:\) obwohl ich mich im Ordner D:\Bilder\Test befand nach K:\Bilder\Ordnernamen=Bildname Kopiert.
Lässt sich leicht erklären - wenn als %1 nix ankommt wird aus
"%~1\*.jpg"
"\*.jpg"
was schließlich bedeuet: alle ".jpg"-Dateien des Root-Verzichnisses des aktuellen Laufwerkes - daher also "D:\" ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Ordner von einem Verzeichnis in ein anderes Verzeichnis kopieren und Datei-Name verändern

gelöst Frage von gudboyBatch & Shell15 Kommentare

Ich habe ein "Verzeichnis A" mit Ordner. Die Ordner haben immer eine "F-Nummer" und einen Titel wie z.B. " ...

Batch & Shell

Ordner anhand von Dateinamen erstellen und Dateien in Ordner kopieren

gelöst Frage von getmovingBatch & Shell3 Kommentare

Hallo, ich brauche eine einfache Batch-Datei für Windows, die alle Dateien in einem Ordner bearbeitet. Es sollen alle jpg-Dateien, ...

Batch & Shell

Batch: alle Ordner mit einem bestimmten Namen kopieren

gelöst Frage von RemsboysBatch & Shell4 Kommentare

Hallo zusammen, ich würde gerne eine Batch-Datei erstellen, mit der ich aus einem Ordner alle Unterverzeichnisse die den Namen ...

C und C++

Dateien in Ordner kopieren anhand vom Teil eines Dateinamen

Frage von onlyforu8373C und C++22 Kommentare

Hallo, ich bin neu hier im Forum und habe auch gleich schon meine erste Frage. Ich suche ein Batch-Skript, ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 17 StundenWindows 103 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 20 StundenAdministrator.de Feedback14 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 1 TagHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Server Hardware
Welche Rolle spielt Design bei Enterprise IT Hardware?
Frage von ApolloXServer Hardware17 Kommentare

Ich arbeite für einen internationalen Elektronikhersteller in der Forschung und meine Aufgabe ist es, Feedback von Nutzern in Hinsicht ...

Windows Network
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Network15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Memory Cards
Vergessliche USB-Sticks?
Frage von hanheikMemory Cards14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Hyper-V
Hyper-V mit altem XEON-Server. Was ist falsch?
Frage von LollipopHyper-V11 Kommentare

Hallo Bin etwas frustriert. Kleinbetrieb, ca. 15 PC's, 2 Stk. Server mit einigen virtuellen PC's für Fernwartung, VaultServer für ...