Jump to content
Sign in to follow this  
tomgr

Batch-Script

Recommended Posts

Moin Alle.

Unser BrightStore schreibt Logfiles in ein Verzeichnis. Ich möchte jetzt aus diesem Verzeichnis die letzten beiden J0000***.LOG Dateien (mittels copy in eine Datei) in ein anderes Verzeichnis kopieren. In dem BrightStore-Verzeichnis befinden sich noch andere Dateien und die Dateinamen ändern sich auch immer. Wie finde ich mittels eines DOS-Befehls die letzten beiden hinzugefügten J0000***.LOG Dateien?

 

Kann jemand helfen?

 

Gruss, Tom.

Share this post


Link to post
Share on other sites

Ich habs mal hiermit versucht:

 

C:\WINDOWS\system32\robocopy.exe D:\Programme\CA\"BrightStor ARCserve Backup"\LOG\cas_user_logs\caroot\ D:\Programme\CA\"BrightStor ARCserve

Backup"\LOG\cas_user_logs\smtp\ J*.LOG /MAXAGE:1

 

Batch-Datei: Passiert leider nichts.

Denkfehler??

Share this post


Link to post
Share on other sites

Ich habe die Leerzeichen durch ein % ersetzt.

Irgendwie hat er Probleme mit dem Pfad.

 

C:\Dokumente und Einstellungen\Administrator>C:\WINDOWS\system32\robocopy.exe D:
\Programme\CA\BrightStor%ARCserve%Backup\LOG\cas_user_logs\caroot\ D:\Programme\
CA\BrightStor%ARCserve%Backup\LOG\cas_user_logs\smtp\ *.LOG /MAXAGE:4
-------------------------------------------------------------------------------
  ROBOCOPY     ::     Robust File Copy for Windows     ::     Version XP010
-------------------------------------------------------------------------------
 Started : Mon Feb 04 14:41:34 2008
 Source : D:\Programme\CA\BrightStor%ARCserve%Backup\LOG\cas_user_logs\caroot\
 Dest : D:\Programme\CA\BrightStor%ARCserve%Backup\LOG\cas_user_logs\smtp\
 Files : *.LOG
Options : /COPY:DAT /MAXAGE:4 /R:1000000 /W:30
------------------------------------------------------------------------------

2008/02/04 14:41:34 ERROR 3 (0x00000003) Accessing Source Directory D:\Programme
\CA\BrightStor%ARCserve%Backup\LOG\cas_user_logs\caroot\
Das System kann den angegebenen Pfad nicht finden.

Share this post


Link to post
Share on other sites

Moin tomgr,

 

da Du ja nun etwas vom Verzeichnis c:\windows\system32 schreibst, scheint es sich nun doch nicht um ein DOS-Environment zu handeln, sondern um das der CMD.exe.

Dann könntest Du von folgendem Ansatz (bitte testen am CMD-Prompt) ausgehen.

[Alle drei Zeilen eingeben und die ausgabe im Auge behalten]


set "filemask=\LOG\cas_user_logs\smtp\ J*.LOG"
for /f %i in ('dir %filemask% ^|find "Datei(en)"') do @set /a "toskip=%i-2"
for /f "skip=%toskip%" %i in ('dir %filemask% /b /o:d') do @echo %i
[/Code]

Dann sollten die frischesten beiden Logfiles angezeigt werden.

 

Wenn es tut, dann pack das in einen Batch, ersetze alle %i durch %%i und ändere den Demo-Teil ("echo %i") in "copy %i d:\ein\neues\zuhause\

 

Grüße

Biber

Share this post


Link to post
Share on other sites
Ich habe die Leerzeichen durch ein % ersetzt.

Irgendwie hat er Probleme mit dem Pfad.

 

C:\Dokumente und Einstellungen\Administrator>C:\WINDOWS\system32\robocopy.exe D:
\Programme\CA\BrightStor%ARCserve%Backup\LOG\cas_user_logs\caroot\ D:\Programme\
CA\BrightStor%ARCserve%Backup\LOG\cas_user_logs\smtp\ *.LOG /MAXAGE:4
-------------------------------------------------------------------------------
  ROBOCOPY     ::     Robust File Copy for Windows     ::     Version XP010
-------------------------------------------------------------------------------
 Started : Mon Feb 04 14:41:34 2008
 Source : D:\Programme\CA\BrightStor%ARCserve%Backup\LOG\cas_user_logs\caroot\
 Dest : D:\Programme\CA\BrightStor%ARCserve%Backup\LOG\cas_user_logs\smtp\
 Files : *.LOG
Options : /COPY:DAT /MAXAGE:4 /R:1000000 /W:30
------------------------------------------------------------------------------

2008/02/04 14:41:34 ERROR 3 (0x00000003) Accessing Source Directory D:\Programme
\CA\BrightStor%ARCserve%Backup\LOG\cas_user_logs\caroot\
Das System kann den angegebenen Pfad nicht finden.

 

Die Pfade solltest Du doch schon richtig angeben. Also ohne %, aber komplett in Anführungszeichen. Also z. B. so "D:\Programme\CA\BrightStor ARCserve Backup\LOG\cas_user_logs\caroot\"

Share this post


Link to post
Share on other sites

Moin

Keine Chance.

Merkwürdiger Weise hat er Schwierigkeiten mit der Zieladresse die auch in "" gesetzt ist.

Direkt hinter der Quelle.

 

C:\Dokumente und Einstellungen\Administrator>C:\WINDOWS\system32\robocopy.exe "D:\Programme\CA\BrightStor ARCserve Backup\LOG\cas_user_logs\caroot\" "D:\Programme\CA\BrightStor ARCserve Backup\LOG\cas_user_logs\smtp\" *.LOG /MAXAGE:4

 

-------------------------------------------------------------------------------
  ROBOCOPY     ::     Robust File Copy for Windows     ::     Version XP010
-------------------------------------------------------------------------------
 Started : Tue Feb 05 07:21:27 2008
  Source - D:\Programme\CA\BrightStor ARCserve Backup\LOG\cas_user_logs\caroot" D:\Programme\CA\BrightStor\
    Dest - C:\Dokumente und Einstellungen\Administrator\ARCserve\
   Files : 
 Options : /COPY:DAT /R:1000000 /W:30 
------------------------------------------------------------------------------
ERROR : Invalid Parameter #3 : "Backup\LOG\cas_user_logs\smtp""

Share this post


Link to post
Share on other sites

Moin tomgr,

 

1. Deine ursprüngliche Fragestellung, so wie ich sie wahrgenommen habe war:

Wie finde ich mittels eines DOS-Befehls die letzten beiden hinzugefügten J0000***.LOG Dateien?

[/Quote]

Dafür hatte ich weiter oben einen Vorschlag gemacht. Schon gelesen?

 

2. Wenn Du jetzt stattdessen mit Robocopy alle *.log-Dateien jünger als 4 Tage kopieren willst, was ich nicht unbedingt als wortwörtliche Umsetzung der Aufgabe bezeichnen würde, dann lass bitte bei "Quelle" und "Ziel" jeweils den abschließenden Backslash weg.

 

3. Wenn Du solche Schinken wie Robocopy oder xcopy testen willst, dann überprüfen doch das, was passieren soll mit dem zusätzlichen Parameter /L für "nur anlisten, was ich tun würde". Das geht sogar ohne Batch drumherum.

 

4. Nochmal die Robocopy-Zeile, die bei Dir funktionieren würde incl. Parameter /L:


robocopy.exe "D:\Programme\CA\BrightStor ARCserve Backup\LOG\cas_user_logs\caroot" "D:\Programme\CA\BrightStor ARCserve Backup\LOG\cas_user_logs\smtp" *.LOG /MAXAGE:4 /L
[/Code]

- oder, weil das so kein Schwein lesen kann.

[Code]
Set "Userlogs=-D:\Programme\CA\BrightStor ARCserve Backup\LOG\cas_user_logs"
robocopy.exe "%userlogs%\caroot" "%userlogs%\smtp" J*.log /maxage:4 /L
[/Code]

 

Grüße

Biber

Share this post


Link to post
Share on other sites

DANKE, es klappt.

 

:mad: Der abschließende Backslash war der Übeltäter.

 

Ich hatte natürlich vor, suchen und kopieren. Sorry, falsch ausgedrückt.

Share this post


Link to post
Share on other sites
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...