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

Per Move 1000 Dateien ins 1. die nächsten 1K ins nächste Verzeichnis usw.

Frage Entwicklung Batch & Shell

Mitglied: zip1928

zip1928 (Level 1) - Jetzt verbinden

05.09.2007, aktualisiert 06.09.2007, 3250 Aufrufe, 10 Kommentare

Hallo Experten,

wir haben hier z.Zt. 75000 Dateien die möchte ich in 75 Verzeichnisse verschieben. Es soll keine Sortierung o.a. geben

es sollen die Verzeichnisse 01000 02000 03000 04000 ... 10000 11000 usw erstellt werden und dort dann jeweils

maximal 1000 Dateien rein. ich hoffe ihr habt eine Lösung.

Vielen Dank für eure Hilfe.
Mitglied: Biber
05.09.2007 um 07:12 Uhr
Moin zip1928,

willkommen im Forum.
Ist das der ganze Plan oder nur der Teil, den wir wissen müssen?
Hört sich für mich nicht wirklich nach einer zukunftsweisenden Strategie an.

Möchtest Du eventuell darüber reden?

Falls Du Dich auf das rein Handwerkliche beschränken möchtest:
  • Sicherheitsabfrage: Die 1000er-Pakete weder nach Alphabet noch nach Dateidatum sortiert?!?
  • sind Leerzeichen/Sonderzeichen in den Dateinamen oder sind die noch in DOS-8.3-Notation?

Bitte nicht eingeschnappt sein - handwerklich ist es nicht sonderlich anspruchsvoll.
Aber als Problemlösung erscheint mir das Konzept eher suboptimal.

Grüße
Biber
Bitte warten ..
Mitglied: zip1928
05.09.2007 um 09:27 Uhr
Hallo Biber,

die Dateien sind von 3 Überwachungskameras und haben das Format z.b. 20070905-10.11.54_P1.jpg zu erst kommt das Datum dann die Uhrzeit danach P1
für Parkplatz 1 dann ist das noch anstelle "P1" "P2" und "eingangshalle" da ich das
ganze nur zum Archivieren auf Platte brauche habe ich schon 3 Verzeichnisse
erstellt und per Move *P1.* ins passende Verzeichniss verschoben nur haben wir jetzt in jedem dieser Verzeichnisse so ca. 20-30 Tausend Fotos diese zu laden dauert unserem
Chef zulange nun wollte ich das Automatisch verschieben.

Ich hoffe das das Verständlich ist

Grüße
Zacharias
Bitte warten ..
Mitglied: bastla
06.09.2007 um 21:18 Uhr
Hallo zip1928!

Versuch es einmal so:
01.
@echo off & setlocal 
02.
cd /d D:\Daten\P1 
03.
 
04.
set /a Nr=100000 
05.
set /a Anzahl=1000 
06.
set /a Z=%Anzahl% 
07.
 
08.
for %%i in (*.jpg) do call :ProcessFile "%%i" 
09.
goto :eof 
10.
 
11.
:ProcessFile 
12.
set /a Z+=1 
13.
if %Z% leq %Anzahl% goto :MoveIt 
14.
set /a Z=1 
15.
set /a Nr+=%Anzahl% 
16.
set Verz=%Nr:~1% 
17.
md %Verz% 
18.
echo %Verz% 
19.
:MoveIt 
20.
move %1 %Verz%
Das Verzeichnis in der zweiten Zeile musst Du natürlich Deinen Gegebenheiten anpassen.

Falls Du übrigens vielleicht doch lieber eine chronologische Reihung hättest, könntest Du die "for"-Zeile so schreiben:
01.
for /f "delims=" %%i in ('dir /b /od *.jpg') do call :ProcessFile "%%i"
Und, nur zur Sicherheit: Verwende für Deine Tests bitte Kopien und nicht die Originaldaten!

Grüße
bastla
Bitte warten ..
Mitglied: Biber
06.09.2007 um 21:34 Uhr
Fußnote für ängstliche Gemüter zu bastlas Lösung:

Wenn wir tatsächlich von ca 75000 Dateinamen mit je ~20+ Zeichen reden, dann könnte es der CMD.exe ein bisschen Stress machen, diese als "virtuelles File" im Hauptspeicher zu halten.
Wir wissen doch alle, dass es unter Windows laufen soll...

Deshalb eventuell statt dieser Variante:
01.
for /f "delims=" %%i in ('dir /b /od *.jpg') do call :ProcessFile "%%i"
....das übervorsichtige Zwischenspeichern in einer temporären, aber real vorhandenen Datei:
01.
dir /b /od *.jpg>%temp%\AllFiles.lst 
02.
for /f "delims=" %%i in (%temp%\AllFiles.lst) do call :ProcessFile "%%i" 
03.
del %temp%\AllFiles.lst
BTW, wäre es nicht - wenn diese Bildchen eh schon sortiert, archiviert und nach menschlichem Ermessen nie wieder vorgekramt werden, eine Abspeicherung nach Monatsordnern sinnvoller?
01.
2007-08_P1 
02.
2007-08_P2 
03.
2007_08_eingangshalle 
04.
2007-09_P1 
05.
2007-09_P2 
06.
2007_09_eingangshalle
Die Informationen aufgrund der Dateinamen wären ja da...?

Grüße
Biber
Bitte warten ..
Mitglied: zip1928
06.09.2007 um 21:40 Uhr
Hallo Leute,

danke euch es hat alles bestens hingehauen !!!

Läuft zwar immer noch da das ganze über ein NW muß aber es sieht gut aus !


Danke nochmals

Zacharias
Bitte warten ..
Mitglied: bastla
06.09.2007 um 21:53 Uhr
@Biber

... Abspeicherung nach Monatsordnern sinnvoller?
Ich hatte mich ja nach dem nahezu kategorischen "Es soll keine Sortierung o.a. geben" eigentlich kaum getraut, eine zeitliche Ordnung vorzuschlagen, und jetzt sowas.

Das wäre ja ein fast schon unentschuldbarer Verstoß gegen das Prinzip "Wundertüte", und außerdem würdest Du damit dem (fast originalen) Forrest Gump-Zitat: "Ein Verzeichnis (mit 1000 jpg-Files) ist wie eine Schachtel Pralinen - man weiß nie, was man bekommt" doch glatt die Grundlage entziehen ...

Grüße
bastla
Bitte warten ..
Mitglied: bastla
06.09.2007 um 21:57 Uhr
Hallo zip1928!

Freut mich, wenn's geklappt haben wird.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
06.09.2007 um 22:06 Uhr
@bastla
Ich hatte mich ja nach dem nahezu kategorischen "Es soll keine Sortierung o.a. geben" eigentlich kaum getraut, eine zeitliche Ordnung vorzuschlagen, und jetzt sowas.
Na ja, warte erst mal ab, wenn er morgen früh stolz das Ergebnis mit je 1000 Dateien in so sprechenden Verzeichnisnamen wie "01000", "02000", "03000" sieht...
Dann kommt bestimmt die Nachfrage: Wäre das denn ein großer Aufwand, das in Monatsordner wegzukruuschen?"

Aber das warten wir erstmal ab...

Schönen Abend
Biber
Bitte warten ..
Mitglied: bastla
06.09.2007 um 22:20 Uhr
@Biber

Wir wissen ja ohnehin beide, dass Du Recht hast, aber wie hieß es bei Frank Zander (in der "Disco Polka"): Der Wirt will es so.

Bevor mir noch mehr solcher weltbewegender Zitate einfallen, hör ich lieber auf.

Dir auch einen schönen Abend
bastla
Bitte warten ..
Mitglied: bastla
06.09.2007 um 22:41 Uhr
... aber da ich manchmal im Abwarten so schlecht bin:
01.
@echo off & setlocal 
02.
cd /d D:\Daten\P1 
03.
 
04.
for %%i in (*.jpg) do call :ProcessFile "%%i" 
05.
goto :eof 
06.
 
07.
:ProcessFile 
08.
for /f "tokens=1,2 delims=_" %%d in ('echo %~n1') do set Zeitraum=%%d & set Bereich=%%e 
09.
set Verz=%Zeitraum:~0,4%-%Zeitraum:~4,2%_%Bereich% 
10.
if not exist %Verz% md %Verz% 
11.
move %1 %Verz%
Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(2)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...