Batch: Unterschied XP zu Win2000

  • #1
S

Selenic

Neues Mitglied
Themenersteller
Dabei seit
28.02.2005
Beiträge
4
Reaktionspunkte
0
Schönen guten Tag,

ich habe eine Batch Datei erstellt, die einen Ordner nach bestimmten Dateiendungen durchsucht und diese dateien, falls sie älter als 31 tage sind, löscht. Geschrieben habe ich das Ganze unter Windows Xp. Leider ist der Rechner auf das Script laufen soll ein Windows 2000 Rechner. Und vermutlich deswegen bekomme ich die schöne Meldung: Fehlende Klammer.

Ich kann die fehlende Klammer nicht finden, und weis auch sonst keinen Anstatz, da das Script unter XP problemlos funktioniert. Vielleicht kann mir jemand sagen, wo der Fehler liegt.

Grüße

Code:
@set verzeichnis=I:\sonstiges\
@cls
@echo off
title Loeschroutine fuer Printing v1.00
set tagheute=%date:~0,2%
set monatheute=%date:~3,2%
set jahrheute=%date:~6,4%
set /a datumheute=%tagheute%+(%monatheute%*30)+(%jahrheute%*360)
echo echo #######################################################
                 
echo Arbeitsverzeichnis: %verzeichnis%
echo echo #######################################################
echo.
set count=0
set count2=0
dir %verzeichnis%*.txt /-c|findstr /i /c:. > temp.txt
for /f tokens=1,2,3,5* delims=.  %%i in ('findstr .txt temp.txt') do (
	set dateiname=%%m
	@call :auswertung %%i %%j %%k
)
del temp.txt
echo.
echo #######################################################
echo.
echo Geloeschte Dateien:	%count%
echo Verbleibende Dateien:	%count2%
endlocal
echo.
echo #######################################################
echo.
sleep 2
goto ende
echo.
echo echo #######################################################
:auswertung
set tag=%1%
set monat=%2%
set jahr=%3%
set /a datum=%tag%+(%monat%*30)+(%jahr%*360)
set /a differenz=%datumheute%-%datum%
set /a zeitbisloesch=14-%differenz%
for /f tokens=1,2,3 delims=. %%m in ('date /t') do (
	if %differenz% GEQ 14 (
		set /a count=%count%+1
			echo Geloescht: %dateiname%
	)else (
		rem echo %zeitbisloesch% Tage verbleibend...
		set /a count2=%count2%+1
	)
)
:ende
 
  • #2
Niemand eine Idee?
 
  • #3
der fehler liegt in dieser zeile hier

set /a datumheute=%tagheute%+(%monatheute%*30)+(%jahrheute%*360)

offensichtlich kann w2k das so nicht verarbeiten. ich würde noch 2 weitere variablen einführen

set monatheute1=%monatheute%*30
set jahrheute1=%monatheute%*30
set /a datumheute=%tagheute% + %monatheute1%+%jahrheute1%

greetz

hugo
 
Thema:

Batch: Unterschied XP zu Win2000

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.959
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben