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 Per Autostart unter XP - Zufallsdateien (jpg-Bilder aus verschiedenen Unterordnern) von Laufwerk C nach D kopieren

Mitglied: leertaste

leertaste (Level 1) - Jetzt verbinden

11.10.2007, aktualisiert 12.10.2007, 4536 Aufrufe, 5 Kommentare

Hallo Forumsleute

Hoff' mal das ich für diese Frage hier im richtigen Forumsbereich gelandet bin ;)

Ich suche ein Programm, natürlich möglichst Freeware :D das in den 'Autostart-Ordner' unter XP kommt...


...möchte per Zufall Dateien (jpg-Bilder aus verschiedenen Unterordnern) von Laufwerk C nach D kopieren. Wobei das Laufwerk D eine Ramdisk ist und ich die Dateien auf eine bestimmte Anzahl oder Megabytemenge begrenzen möchte.

Gibt es da ein Tool/Utility mit dem sich das bewerkstelligen lässt? Ich habe geGOOGLEd aber leider nichts brauchbares gefunden


FreundlichFragenderGruss
von der Leertaste
Mitglied: bastla
11.10.2007 um 20:51 Uhr
Hallo leertaste!

Wenn es auch ein Batch sein dürfte, könntest Du es so versuchen:
01.
@echo off & setlocal
02.
set "Quelle=C:\Bilder"
03.
set "Typ=*.jpg"
04.
set "Ziel=D:"
05.
set /a Grenze=5000000
06.

07.
set /a Bytes=0
08.
set Done=
09.
for /f %%i in ('dir "%Quelle%\%Typ%"^|findstr "Datei(en)"') do set /a Anzahl=%%i
10.

11.
:Loop
12.
set /a Nr=%random%*%Anzahl%/32768+1
13.
for /f "tokens=1* delims=:" %%i in ('dir /b "%Quelle%\%Typ%"^|findstr /n .^|findstr /b "%Nr%"') do call :ProcessFile "%Quelle%\%%j"
14.
if not defined Done goto :Loop
15.
goto :eof
16.

17.
:ProcessFile
18.
if exist "%Ziel%\%~nx1" goto :eof
19.
set /a Bytes+=%~z1
20.
if %Bytes% lss %Grenze% (
21.
	copy %1 "%Ziel%" >nul
22.
) else (
23.
	set Done=True
24.
)
Im dargestellten Beispiel werden jpg-Bilder aus dem Ordner "C:\Bilder" nach "D:\" kopiert - bitte bei den Pfadangaben keinen "\" an das Ende setzen (daher nur "D:").

Anmerkung: Für das Kopieren gilt eine Speicherplatz-Obergrenze (im Beispiel 5.000.000 Bytes), aber keine -Untergrenze.

Das bedeutet: Es werden solange Bilder kopiert, bis mit dem nächsten zu kopierenden Bild die Grenze (in Bytes angegeben) überschritten würde - Beispiel: Wenn bereits Bilder mit einer Gesamtgröße von 4.620.000 Bytes kopiert wurden, wird ein weiteres Bild mit 500.000 Bytes nicht mehr kopiert, während ein solches mit 300.000 Bytes noch unter die Grenze passt und daher noch kopiert würde. Damit wird sicher gestellt, dass die angegebene Kapazität keinesfalls überschritten wird. Dennoch sollte noch eine Reserve eingeplant werden, da der tatsächliche Platzbedarf einer Datei höher ist als ihre exakte Größe in Bytes.

Bitte auch zu beachten: Wenn die Grenze zu hoch angesetzt wird (also die Größe aller Bilder zusammen den Grenzwert nicht überschreitet), läuft der Batch in eine Endlosschleife.

Grüße
bastla
Bitte warten ..
Mitglied: leertaste
11.10.2007 um 22:23 Uhr
Hallo bastla und alle anderen Mitleser

Es darf auch ein Batch sein Aber ich hätte auch gerne (diverse) UnterOrdner mit einbezogen, wenn das nicht geht... ...na dann müsste ich eine Vorauswahl in einen Ordner kopieren und dann per zufall einen Teil der Bilder mit'te Batch in'ne RamDisk (Laufwerk D) kopieren. Unterordner wäre wie gesagt schön, aber zur Not kann/werde/muss ich mir dann anders behelfen... ...ansonsten ist diese kleine Routine schon echt SPITZE !!!

Wenn in der obigen Routine was "schief läuft" (z.B. zu wenig Bilder in einem Verzeichnis) läuft sie echt endloooos könnte man nicht der kompletten Routine "sagen" - laufe nur 10x, 20x oder wie oft auch immer(?) durch und beende dich dann selbst...


Freundlicher"Vordankes"Gruss
von der Leertaste
Bitte warten ..
Mitglied: bastla
11.10.2007 um 23:02 Uhr
Hallo leertaste!

Aber ich hätte auch gerne (diverse) UnterOrdner mit einbezogen
Da hatte ich einfach drübergelesen ...

laufe nur 10x, 20x oder wie oft auch immer(?) durch und beende dich dann selbst...
Eine solche Festlegung würde darauf hinauslaufen, dass (je nachdem, was früher eintritt), bei max 10, 20 oder "wieviel auch immer" Bildern oder beim Erreichen der Speichergrenze Schluss ist.

Die folgende Version sollte höchstens 20 Bilder (auch aus Unterordnern) kopieren:
01.
@echo off & setlocal
02.
set "Quelle=C:\Bilder"
03.
set "Typ=*.jpg"
04.
set "Ziel=D:"
05.
set /a Grenze=5000000
06.
set /a Max=20
07.

08.
set /a Bytes=0
09.
set Done=
10.
for /f %%i in ('dir /s "%Quelle%\%Typ%"^|findstr "Datei(en)"') do set /a Anzahl=%%i
11.

12.
:Loop
13.
set /a Nr=%random%*%Anzahl%/32768+1
14.
for /f "tokens=1* delims=[]" %%i in ('dir /s /b "%Quelle%\%Typ%"^|find /v /n "::"^|find "[%Nr%]"') do call :ProcessFile "%%j"
15.
if %Max% lss 1 goto :eof
16.
if not defined Done goto :Loop
17.
goto :eof
18.

19.
:ProcessFile
20.
set /a Max-=1
21.
if exist "%Ziel%\%~nx1" goto :eof
22.
set /a Bytes+=%~z1
23.
if %Bytes% lss %Grenze% (
24.
	copy %1 "%Ziel%" >nul
25.
) else (
26.
	set Done=True
27.
)
Anmerkung: Da auch "Fehlversuche" (wenn das Bild bereits in einem früheren Durchlauf kopiert wurde) mitgezählt werden, wird zumeist die angegebene Maximalanzahl nicht erreicht werden - daher also vielleicht etwas höher ansetzen (oder zB gleich auf 200, um tatsächlich nur der Gefahr einer Endlosschleife vorzubeugen).

Grüße
bastla

[Edit] Zweite "for"-Zeile gekürzt. [/Edit]
Bitte warten ..
Mitglied: bastla
11.10.2007 um 23:28 Uhr
... und um den Ablauf vielleicht ein wenig zu beschleunigen, noch eine Variante mit Verwendung einer Temporärdatei für die Bilderliste:
01.
@echo off & setlocal
02.
set "Quelle=C:\Bilder"
03.
set "Typ=*.jpg"
04.
set "Ziel=D:"
05.
set /a Grenze=5000000
06.
set /a Max=20
07.

08.
set "Liste=%Temp%\Bilderliste.txt"
09.
set /a Bytes=0
10.
set Done=
11.
for /f %%i in ('dir /s "%Quelle%\%Typ%"^|findstr "Datei(en)"') do set /a Anzahl=%%i
12.
dir /s /b "%Quelle%\%Typ%"|find /v /n "::">"%Liste%"
13.

14.
:Loop
15.
set /a Nr=%random%*%Anzahl%/32768+1
16.
for /f "tokens=1* delims=[]" %%i in ('find "[%Nr%]"^<"%Liste%"') do call :ProcessFile "%%j"
17.
if %Max% lss 1 goto :eof
18.
if not defined Done goto :Loop
19.
goto :eof
20.

21.
:ProcessFile
22.
set /a Max-=1
23.
if exist "%Ziel%\%~nx1" goto :eof
24.
set /a Bytes+=%~z1
25.
if %Bytes% lss %Grenze% (
26.
	copy %1 "%Ziel%" >nul
27.
) else (
28.
	set Done=True
29.
)
Grüße
bastla
Bitte warten ..
Mitglied: leertaste
12.10.2007 um 00:39 Uhr
Ich wollt' mal gaaaaanz dringend etwas loswerden...

.

..

...

....

.....

......

.......

......

.....

....

...

..

.

Daaaaaaaaaaaaaaaaaaanke, es läuft SUPER KLASSE - Lokal auf der Platte oder via Netzwerk.
Einfach mal wieder coole Batchbastladateien


NiceBatchGruss
von MarCus mit ZEH


Ps.: Wo kann mich eigentlich so einen genialen 'BatchUmsetzungkopf' kaufen
Bitte warten ..
Ähnliche Inhalte
Windows Server

C-Partition vergrößern, bei vorhandenem D?

gelöst Frage von 1410640014Windows Server7 Kommentare

Hallo, folgendes Problem: am Server ist die C-Partition zu klein geworden mit ständig neuen Updates und Programmen. D böte ...

Microsoft

Selbst installierte Programme auf C oder D?

gelöst Frage von honeybeeMicrosoft7 Kommentare

Hallo, ich habe eine SSD (Laufwerk C) und eine HDD (Laufwerk D) auf meinem Notebook. Wohin würdet ihr an ...

Batch & Shell

Powershell: Restspeicherplatz von C: und D: ermitteln

gelöst Frage von HeuristikerBatch & Shell7 Kommentare

Hallo Leute, nutze ein Powershell-Skript, dessen Kernbefehl den restlichen Plattenplatz ermittelt und in eine CSV-Datei exportiert: gwmi Win32_LogicalDisk -ComputerName ...

Windows Server

Windows Server - Datenträgerverwaltung Laufwerk C: erweitern

Frage von JonskezWindows Server8 Kommentare

Hallo, ich habe folgendes Problem. Ich habe einen Windows Server 2016 (Ist virtualisiert in einem ESX-Cluster) der als WSUS ...

Neue Wissensbeiträge
Humor (lol)
Preisvertipper
Information von Dilbert-MD vor 19 StundenHumor (lol)6 Kommentare

Moin! weil heute Freitag ist, zeige ich Euch den Preisvertipper der Woche: vergesst den Acer Predator 21x, der ist ...

Windows Update
Sicherheitsupdate für SQL Server 2014 SP3
Information von sabines vor 1 TagWindows Update2 Kommentare

Für den SQL Server 2014 existiert ein Sicherheitsupdate. Laut KB Artikel wird es als CU3 angezeigt: Server 2014 SP3 ...

Backup

Veeam Agent für MS Windows - neue Version verfügbar (bedingt jedoch offenbar .NET Framework 4.6)

Information von VGem-e vor 2 TagenBackup1 Kommentar

Moin Kollegen, einer unserer Server zeigte grad an, dass für o.g. Software ein Update verfügbar ist. Ob ein evtl. ...

Python

Sie meinen es ja nur gut - Microsoft hilft python-Entwicklern auf unnachahmliche Weise

Information von DerWoWusste vor 4 TagenPython2 Kommentare

Stellt Euch vor, Ihr nutzt python unter Windows 10 und skriptet damit regelmäßig Dinge. Nach dem Update auf Windows ...

Heiß diskutierte Inhalte
Windows Update
WSUS - erforderlich Updates
Frage von emeriksWindows Update24 Kommentare

Hi, ein gängiges Verfahren, welche Updates man am WSUS-Server genehmigen soll und welche nicht, beruft sich darauf, dass man ...

Netzwerkgrundlagen
Neue Serverumgebung von 0 aufbauen
Frage von JacareNetzwerkgrundlagen20 Kommentare

Hallo zusammen, ich bin noch nicht lange hier und weiß nicht, ob meine Frage daher etwas ungewöhnlich ist. Ich ...

Off Topic
Installationskosten Verkabelung
Frage von Xaero1982Off Topic14 Kommentare

Moin Zusammen, ich bräuchte mal ein paar Meinungen, weil ich mir da gerade echt nicht ganz sicher bin. Ich ...

Debian
Alle Verbindungen bis auf eine IP Adresse blockieren
Frage von BananenmeisterDebian13 Kommentare

Hallo Zusammen, Ich habe einen Hyper-V Server auf dem ein debian (ohne desktop) läuft. Dort drauf ist ein Webserver ...