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
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^^
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
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
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
---
---
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
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
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
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 :-(
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
Gruß, Steffen
Antwort 11 von sTk
Ich poste den Code einfach mal.
Die Syntax erschließt sich eigentlich fast von selbst, ansonsten nochmal fragen.
Gruß, Steffen
´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
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

