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

Viele Dateien in Unterverzeichnisse verschieben (automatisiert)

Frage Microsoft Windows 7

Mitglied: arator65

arator65 (Level 1) - Jetzt verbinden

14.02.2014 um 15:22 Uhr, 2833 Aufrufe, 1 Kommentar

Hallo zusammen,

ich habe Verzeichnisse mit Fotos, zum Teil sind da bis zu 15.000 Fotos in einem Verzeichnis.

Nun möchte ich diese Vielzahl an Bildern in Unterverzeichnisse mit jeweils 1000 oder 1500 Fotos verschieben.
Das Ursprungsverzeichnis soll also nach Ausführen des Skripts/Tools mehrere Unterverzeichnisse haben (part1, part2, part3, ...) in denen jeweils eine definierte Anzahl an Fotos enthalten ist.

Schön wäre, wenn das Tool nix tun würde, wenn weniger als die maximale Anzahl pro Unterverzeichnis vorhanden ist

Geht das mit einem Skript, gibt es dafür ein Tool, oder hat jemand eine andere Idee ?

Danke schon mal
Mitglied: colinardo
14.02.2014, aktualisiert 27.06.2014
Hallo arator65, Willkommen im Forum!
Ich hatte dazu mal vor einiger Zeit ein Powershell-Script geschrieben, das Dateien gleichmäßig auf Unterordner verteilt:
Das Script verteilt Dateien in gleichen Teilen gleichmäßig auf Unterordner. Der Ordner in dem die Dateien liegen gibt man in Zeile 1 an (ohne Backslash am Ende) und die gewünschte Anzahl der Dateien in jedem Ordner, in Zeile 2. Die Dateien werden dann in Unterordner mit Namen part1 , part2 , etc. verschoben.
01.
$folder = "D:\Bilder" 
02.
$splitNum = 1000 
03.
$items = dir "$folder\*.*" | ?{!$_.PSIsContainer} 
04.
$folderCount = [Math]::floor(($items.Count / $splitNum)) 
05.
if (($items.Count) -ge $splitNum ){ 
06.
    for ($i=0;$i -lt $folderCount ; $i++){ 
07.
        $subFolder = "$folder\part$($i+1)" 
08.
        if (!(Test-Path -Path $subFolder)){ mkdir $subFolder} 
09.
        for ($j=$i*$splitNum;$j -lt ($i*$splitNum)+$splitNum ; $j++){ 
10.
            $items[$j].MoveTo("$subFolder\$($items[$j].Name)") 
11.
12.
13.
}else{ 
14.
    write-host "Im Ordner $folder sind nur $($items.Count) Dateien enthalten! Eine Aufsplittung zu je $splitNum Dateien ist daher nicht möglich." 
15.
}
Der Rest der Bilder der nicht mehr ganzzahlig durch die Anzahl (1000) teilbar ist, verbleibt im Ordner, so wie du das wolltest.

Grüße Uwe
p.s. wenn du noch nie mit Powershell-Scripten zu tun hattest, hier ergänzend noch eine Kurzanleitung dazu wie man solche Scripte ausführt:
Anleitung: Wie starte ich Powershell-Scripte
  • Zuerst speicherst man den Code in einer Textdatei mit der Endung .ps1.
  • Wenn man zum ersten mal Powershell-Scripte ausführt, musst man einmalig vorher noch das Ausführen von Scripten freischalten. Dazu öffnet man eine Powershell-Konsole und gibt dort den Befehl Set-ExecutionPolicy RemoteSigned -Force ein. Um diese Policy für alle User auf dem Rechner zu setzen muss man diesen Befehl in einer Powershell-Konsole mit Admin-Rechten starten. Noch ein Hinweis für 64-Bit-Systeme: Hier sollte sowohl für die 32bit und 64Bit Variante der Powershell die Policy in einer Admin-Konsole gesetzt werden: Set-ExecutionPolicy RemoteSigned -Force; start-job { Set-ExecutionPolicy RemoteSigned -Force } -RunAs32
  • Jetzt kann das Powershell-Script in der Konsole mit Eingabe des Pfades der Scriptdatei, oder mit einem Rechtsklick auf die Script-Datei :Mit Powershell ausführen gestartet werden.
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...