Supportnet Computer
Planet of Tech

Supportnet / Forum / Windows2000

Operatoren in Batchdateien?





Frage

>Hallo! ich kriegs einfach nicht hin herauszufinden wie ich Operatoren wie <, > (kleiner, größer als) in meine Batch datei einbauen kann. ich möchte das [heutige datum -14 Tage] mit dem [erstelldatum] vergleichen! wie geht das?

Antwort 1 von Vogelgrippe

Nehme diese Operatoren
EQU - gleich
NEQ - nicht gleich
LSS - kleiner als
LEQ - kleiner als oder gleich
GTR - größer als
GEQ - größer als oder gleich

cu
Grippe

Antwort 2 von drese

und wie bewekstellige ich das das heutige datum minus 14 tage als wert dasteht :-(

Vielen Dank schonmal @ Vogelgrippe (löl) und immer in der schutzzone bleiben^^

Antwort 3 von Vogelgrippe

Das ist nicht so einfach - kannst du das nicht mit
vbscript erledigen?
Da hättest du mehr Möglichkeiten.

cu
Grippe

Antwort 4 von Ralfman

Hi drese,
wie sieht denn Dein Script bisher aus?
Wir können nur auf Bestehendem Aufbauen oder Fehler sehen wenn wir etwas sehen.

Ralf

Antwort 5 von drese

meine versuche sehen so aus:

---
if *.txt lss 07.03.2006
del /q *.txt
pause
---

oder

---
del /q -name lss "*.txt" -exec rm {} \;
pause
---

Antwort 6 von Ralfman

Hi drese,
Hilft dieses?

https://supportnet.de/listthread/1114162

wenn nicht, sag dich mal genau was Du Vorhast.

Ralf

Antwort 7 von drese

nein ist nicht das was ich brauche, da wird immer nur die zuletzt erstellte datei bearbeitet und ich brauche ein script

das die in den letzten 14 tage erstellten dateien in ruhe laesst - und alle anderen (älteren) getrost löscht.

mit xcopy geht das nur über umwege.

und sonst, was würdet ihr für andere programmiersprachen vorschlagen? ich kann nur java und asp

Antwort 8 von MPA

darf es auch ein kleines Tool sein?
ich benutze für sowas DelAge32

------
MPA


Signatur und Textformatierungen wurden mit SNTool V2.0.0 erstellt

Antwort 9 von drese

danke für den tipp, kenne ich schon.

das tool habe ich schon ausprobiert, funktioniert

ABER stellt meinen ausbilder nicht zufrieden, von dem ich die aufgabe habe, ich muss den code verstehen lernen :-)

und die delage-exe in eine batch zurückkonvertieren geht nicht :-(

Antwort 10 von sTk

Also mit Batch-Dateien wird das schwierig, vbs wäre besser(wenn möglich), dann könnt ich dir auch ein Beispiel zukommen lassen!

Gruß, Steffen

Antwort 11 von sTk

Ich poste den Code einfach mal.


´v1.0*****************************************************
´ File: Delete_Old.vbs
´ Autor: UKW
´ 02.05.2005
´
´ Löscht alle Dateien, die seit einem bestimmten Datum
´ nicht mehr geändert wurden
´*********************************************************

Option Explicit

Dim Pfad, Alter

Pfad = "d:\test\"

Alter = 28 ´ Dateien, die seit xxx Tagen nicht geändert wurden

MsgBox AltesLoeschen (Pfad, Alter ), vbOKOnly, "Delete Files (c) 2005 by UKW" ´Function Aufruf UND Ergebnisanzeige
´AltesLoeschen "c:\Programme\ISS\BlackICE\hosts", -1 ´Function Aufruf OHNE Ergebnisanzeige
´ ~~~~~~
WScript.Quit

´*********************************************************
Function AltesLoeschen (Pfad, Alter) ´ Anfang
´*********************************************************
Dim fso, oFiles, i, Txt
Alter = FormatDateTime( now() - Alter ,2)
Set fso = WScript.CreateObject("Scripting.FileSystemObject")

if not fso.FolderExists( Pfad ) then
MsgBox UCase(Pfad) & " existiert nicht!", , WScript.ScriptName
Exit Function
End If

AltesLoeschen = "In " & UCase( Pfad ) & " wurden alle vor dem " & Alter & " geänderten Dateien gelöscht." & vbCRLF & vbCRLF
Set oFiles = fso.GetFolder( Pfad ).Files

For Each i In oFiles
if DateDiff("d" , i.DateLastModified, Alter) > 0 then ´ vor dem Alter geänderte Dateien

Txt = i.path ´ nach dem Löschen von i.Path ist auch i.Path gelöscht
AltesLoeschen = AltesLoeschen & i.Name & " " & vbTab & FormatDateTime( i.DateLastModified ,2)

On Error Resume Next

MsgBox "Soll die Datei " & i.Path & " wirklich gelöscht werden?", vbYesNo, WScript.ScriptName

fso.DeleteFile i.path, True

On Error GoTo 0

If not fso.FileExists( Txt ) Then
AltesLoeschen = AltesLoeschen & vbCRLF
Else
AltesLoeschen = AltesLoeschen & " nicht gelöscht." & vbCRLF
End if
End If
Next

Set oFiles = nothing
Set fso = nothing

End Function ´ AltesLoeschen


Die Syntax erschließt sich eigentlich fast von selbst, ansonsten nochmal fragen.

Gruß, Steffen

Antwort 12 von sTk

Die Message-Box "Wollen sie wirklich löschen" kann man weglassen, war ein Test von mir, funktioniert aber nicht!

Antwort 13 von drese

also das script ist super, in vbs ist es doch besser:

meins sieht so aus

Option Explicit
Dim intZahl ´
Dim strExtension ´
Dim intTage ´
Dim objDatei ´
Dim objFSO ´
Dim objOrdner ´
Dim strOrdner ´

Set objFSO = CreateObject("Scripting.FileSystemObject")
strOrdner = "D:\Temp\Dateien"
strExtension = "bak"
intTage = 30

Set objOrdner = objFSO.GetFolder(strOrdner)
intZahl = 0
For Each objDatei In objOrdner.Files
If LCase(Right(objDatei.name, Len(strExtension))) = LCase(strExtension) _
And DateDiff("d", objDatei.DateLastModified, Now) > intTage Then
objDatei.Delete
intZahl = intZahl + 1
End If
Next

WScript.Echo intZahl & " Dateien gelöscht."


HERZLICHEN DANK

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: