Jump to content

Batch-Script


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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.

Link zu diesem Kommentar

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.

Link zu diesem Kommentar

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

Link zu diesem Kommentar
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\"

Link zu diesem Kommentar

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""

Link zu diesem Kommentar

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

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...