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 Dateien nach Datum sortieren

Mitglied: rejael

rejael (Level 1) - Jetzt verbinden

30.01.2007, aktualisiert 01.02.2007, 9847 Aufrufe, 14 Kommentare

Dateien nach Datum sortieren und dann kopieren
[Edit Biber]: Ist mit vereinten Kräften fast schon eine Musterlösung geworden [/Edit]

Hallo alle zusammen,

ich habe mal eine Bitte an "Batcher" unter euch:

ich möchte aus einem Ordner die letzten 2 dateien in ein anderen Ordner kopieren, wobei dateien alle errorxxxxxx.txt heißen.

Bis jetzt funktioniert es so:

@echo off
:: -------erstelle ordner
mkdir "H:\My Databases\test_xcopy\%date%"

:: ------- hier soll eine Sortierung im aktuellem Ordner erfolgen und dann die letzten 2 Dateien kopiert werden

??????

:: ------- kopiere Datei
xcopy H:\testxcopy\robot.txt "H:\My Databases\test_xcopy\%date%" /D /Y

:: ------- kopiere Datei (davon die letzten 2???)
xcopy H:\testxcopy\Kensingtonerr*.txt "H:\My Databases\test_xcopy\%date%" /D /Y

close

wenn jemand eine Idee hat, dann antwortet bitte.
PS: Können die Dateien auch noch vor dem kopieren gepackt werden??

Ciao René
Mitglied: miniversum
30.01.2007 um 16:13 Uhr
@echo off
setlocal enabledelayedexpansion
set Anzahl=2

set zahl=1
FOR /F "delims=" %%i in ('dir /b /O-D') do (
if !zahl! leq %anzahl% ECHO copy "%%i"
set /a zahl=!zahl!+1
)

Unter Anzahl gibst du eben deine zwei oder wieviele du kopiert haben willst an.
Hier siehst du nur welche Kopiert weren. Wilslt du das es ausgeführt wird must du das ECHO entfernen.

miniversum
Bitte warten ..
Mitglied: Biber
30.01.2007 um 18:01 Uhr
...oder, wenn Du es ohne Delayedexpansion machen willst:
01.
:: -----------snipp ProcessLast.bat [Parameter1: Anzahl] 
02.
@echo off & setlocal 
03.
REM Kein Parameter angegeben? Dann "1" als Anzahl annehmen 
04.
If [%1]==[] %0 1 
05.
if not exist "H:\My Databases\test_xcopy\%date%" mkdir "H:\My Databases\test_xcopy\%date%" 
06.
For /L %%i in (1,1,%1) do call :doSomething 
07.
goto :eof 
08.
 
09.
:doSomething 
10.
for /f %i in ('dir /b /o:d error*.txt') do @Set "ThisErrorFile=%%i" 
11.
REM Die neueste Errorxxxxx.txt steht in der Variablen %ThisErrorfile% 
12.
REM und nun COPY, MOVE, RENAME oder 7z oder Rar mir diese Datei... Beispiel MOVE: 
13.
Move "%ThisErrorFile%  "H:\My Databases\test_xcopy\%date%\*.*" 
14.
goto :eof
[ungetestete Skizze]

Zum Thema Packen, Zippen, Raren findest Du ein paar Beispiel-Beiträge im Bereich Batch & Shell.

HTH
Biber
Bitte warten ..
Mitglied: rejael
31.01.2007 um 21:10 Uhr
Super Danke für die schnelle Antwort, nur leider bin ich nicht der Experte in Sachen Programmierung!
Wo müsste denn dann dein Code eingesetzt werden?

@echo off
:: -------erstelle ordner
mkdir "H:\My Databases\test_xcopy\%date%"
xcopy H:\testxcopy\robot.txt "H:\My Databases\test_xcopy\%date%" /D /Y

setlocal enabledelayedexpansion
set Anzahl=2

set zahl=2
FOR /F "delims=" %%i in ('dir /b /O-D') do (
if !zahl! leq %anzahl% ECHO copy "%%i"
set /a zahl=!zahl!+1
)

xcopy H:\testxcopy\Kensingtonerr*.txt "H:\My Databases\test_xcopy\%date%" /D /Y

close

So wird der Ordner erstellt und die robot.txt kopiert, aber die
Oder muss dann der ganze Code anders geschrieben werden???

Danke euch
Bitte warten ..
Mitglied: miniversum
31.01.2007 um 21:24 Uhr
@echo off
:: -------erstelle ordner
mkdir "H:\My Databases\test_xcopy\%date%"

:: ------- hier soll eine Sortierung im aktuellem Ordner erfolgen und dann die letzten 2 Dateien kopiert werden

setlocal enabledelayedexpansion
set Anzahl=2

set zahl=1
FOR /F "delims=" %%i in ('dir /b /O-D') do (
if !zahl! leq %anzahl% ECHO copy "%%i" "Z:\iehl"
set /a zahl=!zahl!+1
)

setlocal disabledelayedexpansion

:: ------- kopiere Datei
xcopy H:\testxcopy\robot.txt "H:\My Databases\test_xcopy\%date%" /D /Y

:: ------- kopiere Datei (davon die letzten 2???)
xcopy H:\testxcopy\Kensingtonerr*.txt "H:\My Databases\test_xcopy\%date%" /D /Y

close


Das dickgedruckte "Z:\iehl" must du halt anpassen WOHIN die Dateien kopiert werden sollen.
Das ECHO mußt du entfernen das die Dateien wirklich kopiert werden und nicht nur angezeigt.
Das setlocal disabledelayedexpansion ist wahlweiße. kansnt du auch weglassen.

miniversum
Bitte warten ..
Mitglied: rejael
31.01.2007 um 21:41 Uhr
Also wenn ich es so anpasse, dann wird die robot.txt und die ganzen Kingstonerrorxxx.txt kopiert, aber ich will ja nur die 2 aktuellsten Kingstonerrorxxx.txt dateien kopiert haben?

@echo off
:: -------erstelle ordner
mkdir "H:\My Databases\test_xcopy\%date%"

:: ------- hier soll eine Sortierung im aktuellem Ordner erfolgen und dann die letzten 2 Dateien kopiert werden

setlocal enabledelayedexpansion
set Anzahl=1

set zahl=1
FOR /F "delims=" %%i in ('dir /b /O-D') do (
if !zahl! leq %anzahl% copy "%%i" "H:\My Databases\test_xcopy\%date%"
set /a zahl=!zahl!+1
)

::---setlocal disabledelayedexpansion

:: ------- kopiere Datei
xcopy H:\testxcopy\robot.txt "H:\My Databases\test_xcopy\%date%" /D /Y

:: ------- kopiere Datei Kensingtonerr*.txt (davon die letzten 2???)
xcopy H:\testxcopy\Kensingtonerr*.txt "H:\My Databases\test_xcopy\%date%" /D /Y

close

Danke rejael
Bitte warten ..
Mitglied: rejael
31.01.2007 um 21:41 Uhr
Also wenn ich es so anpasse, dann wird die robot.txt und die ganzen Kingstonerrorxxx.txt kopiert, aber ich will ja nur die 2 aktuellsten Kingstonerrorxxx.txt dateien kopiert haben?

@echo off
:: -------erstelle ordner
mkdir "H:\My Databases\test_xcopy\%date%"

:: ------- hier soll eine Sortierung im aktuellem Ordner erfolgen und dann die letzten 2 Dateien kopiert werden

setlocal enabledelayedexpansion
set Anzahl=1

set zahl=1
FOR /F "delims=" %%i in ('dir /b /O-D') do (
if !zahl! leq %anzahl% copy "%%i" "H:\My Databases\test_xcopy\%date%"
set /a zahl=!zahl!+1
)

::---setlocal disabledelayedexpansion

:: ------- kopiere Datei
xcopy H:\testxcopy\robot.txt "H:\My Databases\test_xcopy\%date%" /D /Y

:: ------- kopiere Datei Kensingtonerr*.txt (davon die letzten 2???)
xcopy H:\testxcopy\Kensingtonerr*.txt "H:\My Databases\test_xcopy\%date%" /D /Y

close

Danke rejael
Bitte warten ..
Mitglied: Biber
31.01.2007 um 22:23 Uhr
Moin rejael,

hier auch noch mal meine [ungetestete] Variante im Stück:

01.
:.------snipp CopyLast.bat  
02.
@echo off & setlocal 
03.
:: Was variabel bleiben sollte, ist die Anzahl --->Parameter 1; Default 1 
04.
IF [%1]==[] %0 1 
05.
:: ------- hier soll eine Sortierung im aktuellem Ordner erfolgen und dann die letzten 2 Dateien kopiert werden 
06.
::Hmmm, die Vorgabe "aktueller Ordner" ist gefährlich.. geh lieber von "immer ein bestimmter Ordner aus. 
07.
Set "QuellOrdner=H:\testxcopy" 
08.
:: und den ZielOrdner unterstellen wir auch mal als fest 
09.
Set "ZielOrdner=H:\My Databases\test_xcopy" 
10.
If not exist "%QuellOrdner%" ( 
11.
    echo QuellOrdner nicht vorhanden 
12.
    Pause 
13.
    Goto :eof 
14.
)     
15.
PushD "%QuellOrdner%" 
16.
For /L %%i in (1,1,%1) do call :doSomething 
17.
If exist "%Zielordner%\%date%" copy "%QuellOrdner%\robot.txt"  "%ZielOrdner\%date%\*.*"  
18.
PopD 
19.
goto :eof 
20.
 
21.
:doSomething 
22.
for /f %%i in ('dir /b /o:d Kensingtonerr*.txt') do @Set "ThisErrorFile=%%i" 
23.
REM Die neueste KensingtonErrorxxxxx.txt steht in der Variablen %ThisErrorfile% 
24.
REM und nun COPY, MOVE, RENAME oder 7z oder Rar mir diese Datei... Beispiel COPY: 
25.
::erst jetzt das...%date%-Verzeichnis anlegen 
26.
If not exist "%Zielordner\%date%" md "%Zielordner\%date%" 
27.
Copy "%ThisErrorFile%  "%Zielordner\%date%\*.*" 
28.
goto :eof
Gruß
Biber
Bitte warten ..
Mitglied: rejael
31.01.2007 um 22:34 Uhr
ok klappt leider nicht, es wird kein ordner angelegt und auch nichts kopiert???
Hast du noch idee?

Danke im voraus
Bitte warten ..
Mitglied: Biber
31.01.2007 um 22:48 Uhr
Probier jetzt noch mal..

Habe im Source ein "for /f %i in.." durch "for /f %%i in.." ersetzt.

[Aber immer noch nicht getestet.. unterhalte mich grad in einem anderen Thread mit darkbrain85, sorry]

Gruß
Biber
Bitte warten ..
Mitglied: rejael
31.01.2007 um 22:58 Uhr
Na ja geht immer noch nicht, vielleicht kannst du es ja einmal in einer ruhigen Minute testen?
Bis später mal
Bitte warten ..
Mitglied: bastla
01.02.2007 um 15:01 Uhr
Hallo rejael!

Ich hatte gerade ein paar ruhige Minuten ...

@Biber
Ich hab' noch einige % und ein " hineingeworfen, aber in der obigen Form sollte ein "move" stattfinden (da immer nur die aktuellste Datei gesucht wird).

Mit einigen Fundstücken aus Deiner Trickkiste (ja, die war schon wieder offen ), käme bei mir diese Variante heraus:
01.
::------snipp CopyLast.bat  
02.
@echo off & setlocal 
03.
:: Was variabel bleiben sollte, ist die Anzahl --->Parameter 1; Default 1 
04.
IF [%1]==[] %0 1 
05.
:: ------- hier soll eine Sortierung im aktuellem Ordner erfolgen und dann die letzten 2 Dateien kopiert werden 
06.
::Hmmm, die Vorgabe "aktueller Ordner" ist gefährlich.. geh lieber von "immer ein bestimmter Ordner aus. 
07.
Set "QuellOrdner=Z:\testxcopy" 
08.
:: und den ZielOrdner unterstellen wir auch mal als fest 
09.
Set "ZielOrdner=Z:\My Databases\test_xcopy" 
10.
If not exist "%QuellOrdner%" ( 
11.
    echo QuellOrdner nicht vorhanden 
12.
    Pause 
13.
    Goto :eof 
14.
)     
15.
PushD "%QuellOrdner%" 
16.
For /L %%i in (1,1,%1) do call :doSomething %%i 
17.
If exist "%Zielordner%\%date%" copy /y "%QuellOrdner%\robot.txt" "%ZielOrdner%\%date%\*.*" >nul 
18.
PopD 
19.
goto :eof 
20.
 
21.
:doSomething 
22.
set /a Nr=%1 - 1 
23.
set ThisErrorFile= 
24.
if %Nr%==0 ( 
25.
	for /f "delims=" %%i in ('dir /b /o:-d Kensingtonerr*.txt') do if not defined ThisErrorFile @Set "ThisErrorFile=%%i" 
26.
	) else ( 
27.
	for /f "skip=%Nr% delims=" %%i in ('dir /b /o:-d Kensingtonerr*.txt') do if not defined ThisErrorFile @Set "ThisErrorFile=%%i" 
28.
)	 
29.
REM Die %%L. neueste KensingtonErrorxxxxx.txt steht in der Variablen %ThisErrorfile% 
30.
REM und nun COPY, RENAME oder 7z oder Rar mir diese Datei... Beispiel COPY: 
31.
::erst jetzt das...%date%-Verzeichnis anlegen 
32.
If not exist "%Zielordner%\%date%" md "%Zielordner%\%date%" 
33.
Copy "%ThisErrorFile%"  "%Zielordner%\%date%\*.*" > nul 
34.
goto :eof
Grüße
bastla

[Edit] Zur Sicherheit noch "delims=" eingebaut - falls die "KensingtonErrorxxxxx.txt" eine "KensingtonError x xx.txt" wäre ... [/Edit]
Bitte warten ..
Mitglied: Biber
01.02.2007 um 15:11 Uhr
Thx, bastla,

ist mir grad sehr Recht, dass Du da mal drüberguckst...
Ich kasper' hier grad mit "produktiven Problemen" und vor allem mit unproduktiven Nasen rum..

Hoffentlich kommt bald der Vi$ta-Rollout, damit endlich diese Computerproblem aufhören...

Gruss
Biber
Bitte warten ..
Mitglied: rejael
01.02.2007 um 20:30 Uhr
Hallo Bastla,

es hat geklappt!!!!! Danke
Nur eins funktioniert nicht recht und zwar die Variable setzten für die Anzahl:

::------snipp CopyLast.bat
@echo off & setlocal
:: Was variabel bleiben sollte, ist die Anzahl --->Parameter 2; Default 1
IF [%1]==[] %0 2
:: ------- hier soll eine Sortierung im aktuellem Ordner erfolgen und dann die letzten 2 Dateien

ansonsten super, ich danke dir wie verrückt.
Wegen des zippens der dateien mache ich mich später mla schlau...

rejael
Bitte warten ..
Mitglied: bastla
01.02.2007 um 21:12 Uhr
Hallo rejael!

Nur eins funktioniert nicht recht und zwar die Variable setzten für die Anzahl:
:: ------- hier soll eine Sortierung im aktuellem Ordner erfolgen und dann die letzten 2 Dateien
Was genau meinst Du mit "funktioniert nicht recht"? Der Batch ist so angelegt, dass die Anzahl beim Aufruf übergeben wird, so dass Du leicht von 2 auf 4 oder 7 Dateien umstellen kannst, daher starten mit
01.
CopyLast 2
(wenn Du unter "CopyLast.bat" gespeichert hast).

Zu
Anzahl --->Parameter -2 1; Default 1
Parameter 1 meint hier, wie oben gezeigt, dass als erster (und einziger) Parameter beim Aufruf die Anzahl der zu kopierenden Dateien übergeben werden soll - wurde dies nicht gemacht, stellt diese Zeile
IF [%1]==[] %0 2
sicher, dass ein Defaultwert verwendet wird (von Dir jetzt auf 2 geändert). Zur Sicherheit solltest Du aber, wie oben gezeigt, die Anzahl beim Aufruf mitgeben.

ansonsten super, ich danke dir wie verrückt.
Freut mich, mein Anteil dabei ist aber vergleichsweise gering gewesen, daher: fwd 2 Biber ...

Wegen des zippens der dateien mache ich mich später mla schlau...
Vielleicht als Hinweis: Von 7-zip gibt es eine Kommandozeilenversion, zu finden hier, die Du verwenden könntest. Aus dem "copy"-Befehl würde dann etwas in der Art (genaue Syntax müsstest Du Dir ansehen):
01.
C:\Utils\7za.exe a -tzip "%Zielordner%\%date:.=-%.zip" "%ThisErrorFile%"
Grüße
bastla

[Edit] Überflüssige Pfaderweiterung entfernt [/Edit]
Bitte warten ..
Ähnliche Inhalte
Windows Server
Windows Updates nach Datum sortieren
Frage von RG2525Windows Server2 Kommentare

Hallo, Ich muss auf einem Windows Server 2008 R2 ca. 130 ausstehende Updates installieren. Alle Updates auf einmal zu ...

Batch & Shell
(Batch) Datum Sortier-Mechanismus
gelöst Frage von clragonBatch & Shell19 Kommentare

Hallo zusammen. Ich bin schon etwas länger am Batch schreiben, und war schon oft uneingeloggt hier, und jetzt hab ...

VB for Applications

Textdatei zeilenweise nach Datum sortieren

gelöst Frage von GurkenhobelVB for Applications2 Kommentare

Hallo Gemeinde, mehrere umfangreiche Textdateien, in denen zeilenweise wichtige Daten und Termine eingetragen sind, sollen zeilenweise nach dem Datum ...

Batch & Shell

Dateien Automatisch verschieben und gleich sortieren, nach Datum!

gelöst Frage von Johannes0511Batch & Shell12 Kommentare

Hallo zusammen, möchte mit einer Batch Datei automatisch Dateien verschieben/sortiert lassen. Da meine Kenntnisse nicht ausreichen, bitte ich euch ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Tipp von hardykopff vor 13 MinutenWindows 10

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 3 StundenAdministrator.de Feedback8 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 20 StundenHumor (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 1 TagGoogle 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 Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

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

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

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

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...