coreknabe
Goto Top

Windows 7 geplante Aufgabe scheitert mit 0x1

Moin,

ich habe zwei Batchdateien, die problemlos in bisher zwei Windows-Tasks laufen.

Zuerst wird mit Robocopy ein Verzeichnis gespiegelt. Klappt.
Dann möchte ich mit forfiles Log-Dateien löschen, die älter sind als 10 Tage:

forfiles /p D:\Pfad\Log\ /m *.log /d -10 /c "cmd /c del /q @path"  

Lege ich diesen zweiten Befehl allein in einen Task, funktioniert das super. Kopiere ich jetzt aber die Zeile und füge sie unterhalb des Robocopy-Befehls ein, erhalte ich ein 0x1. Die Spiegelung klappt noch, die Entfernung alter Log-Dateien aber nicht. Manueller Start klappt ebenfalls.

Raff ich nicht... Die grundsätzlichen Einstellungen sind bei beiden Tasks identisch (Mit höchsten Privilegien ausführen, Benutzer usw.)

Gruß

Content-Key: 345304

Url: https://administrator.de/contentid/345304

Printed on: April 25, 2024 at 15:04 o'clock

Member: Coreknabe
Coreknabe Aug 03, 2017 updated at 11:55:07 (UTC)
Goto Top
Auweia... Ich sollte mir nen anderen Job suchen (oder nen Platz im Pflegeheim): Ich bekomme ein 0x1, weil es schlicht keine Dateien im Log-Ordner gab, die gelöscht werden konnten, sprich, es waren keine Dateien älter als 10 Tage drin...
Member: BassFishFox
BassFishFox Aug 03, 2017 updated at 20:34:37 (UTC)
Goto Top
Neneee, Du wirst strafversetzt nach China. face-wink

Das 0x1 kannst Du umgehen, wenn Du in der Batch ueberpruefst ob was zum loeschen da ist. Wenn nein gehe zum Ende. Wann ja loesche und gehe zum Ende.

BFF
Member: Coreknabe
Coreknabe Aug 04, 2017 at 06:00:48 (UTC)
Goto Top
Da bin ich schon am Boden und Du kommst mir mit Logik! face-smile

Schönes Wochenende!
Member: Coreknabe
Coreknabe Sep 12, 2017 at 11:13:06 (UTC)
Goto Top
Noch mal eine späte Rückmeldung, evtl. hilft das anderen. Die Abfrage habe ich aus Angst vor China-Zwangsauswanderung noch gemacht und so sieht mein komplettes Skript aus:

SET AUSGABE=NONE
FOR /F "tokens=*" %%a IN ('FORFILES /P PFAD /M *.* /D -10 /C "cmd /c DEL @path" 2^>^&1 ^| FINDSTR FEHLER') DO SET AUSGABE=%%a  
IF "%AUSGABE%" == "FEHLER: Keine Dateien zum Löschen vorhanden." (   
    SET errorlevel=0 
 ) ELSE ( 
    SET errorlevel=1
 )
IF "%AUSGABE%" == "NONE" SET errorlevel=0