Jump to content

Batch - Datum von Ordnern ??


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

Empfohlene Beiträge

Hallo Leute .. :cool:

 

ich versuche nun schon ne weile wie ich mittels der CMD rausbekomme wie alt ein Ordner schon ist :confused: , ergo sein Erstellungsdatum/letzte Änderung auslesen zu können.

Es geht mir darum: Ich habe ein Script das Backups von Clients ausführt. Es legt Ordner an, in denen schon gezippte Datenbanken je ~ 850 MB liegen. Nun wollte ich um den Server nicht zu arg voll zu müllen, Backups die älter als ne woche sind löschen können.

 

Jetzt seid Ihr gefragt .. ;)

 

Danke subby

Link zu diesem Kommentar

Im Resource Kit gibt es ein Tool "forfiles.exe", das kann auch files nach datum suchen und eine bestimmte Aktion ausführen.

Beschreibung:

 

forfiles [-ppath] [-msearchmask] [-ccommand] [-d{+|-}{ddmmyyyy|dd}] [-s] [-v] [-?]

 

Where:

 

-ppath

indicates a path on which to start searching. The default folder is the current one from which forfiles is run (.).

-msearchmask

searches files according to searchmask. The default searchmask is *.*

-ccommand

indicates a command to execute on each file. Command strings with spaces must be enclosed in double quotation marks. The default command is "cmd /c echo @file".

 

The following variables can be used in a command string: @file, @file_without_ext, @ext, @path, @relpath, @isdir, @fsize, @fdate, @ftime.

 

To include special characters in the command line, use the hexadecimal code 0xHH.

-d{+|-}{ddmmyyyy|dd}

selects files with a date greater than or equal to (>=), or less than or equal to (<=), ddmmyyyy (UTC), or files with a date greater than or equal to (>=), or less than or equal to (<=), the current date minus dd days.

-s

instructs forfiles to recurse into subdirectories.

-v

runs forfiles in verbose mode.

-?

displays this usage screen. Usage can also be displayed by running forfiles without arguments.

 

 

grizzly999

Link zu diesem Kommentar

Hallo substyle,

 

Wenn's ein VBscript sein darf, dann kopier das folgende in eine Testdatei mit der Endung *.vbs. z.B. folder.vbs:

 

--------------

' **************************************************

' *

' *Aufruf: cscript folder.vbs c:\temp

' *oder aus einer Batch

' *

' * HINWEISE: erstellt von blub für substyle/www.mcse-board.de

' * 3.4.2003

' *

' **************************************************

Dim fso, f, folder

On Error Resume Next

 

Set objarg = wscript.arguments

folder=objarg(0) 'folder aus Argument der Eingabeaufforderung

'folder = "c:\temp" ' oder so

 

If err<>0 then 'kleines Errorhandling, kannst du auch löschen

wscript.echo "Syntax: cscript folder.vbs c:\temp"

err.Clear

wscript.quit

End If

 

 

Set fso = CreateObject("Scripting.FileSystemObject")

Set f = fso.GetFolder(folder)

 

wscript.echo folder

wscript.echo "ShowDateCreated = " & f.DateCreated

wscript.echo "ShowLastAccess = " & f.DateLastAccessed

wscript.echo "ShowLastModified = " & f.DateLastModified

 

----

Gruss

blub

 

[Edit]

Auf Wunsch von Blub eine kleine Scriptänderung, da seine Edit-Zeit abgelaufen ist.

 

zuschauer

[/Edit]

Link zu diesem Kommentar

Hier ein kleines Script:

 

Syntax (In DOS oder sonst wo):

cscript Folder.vbs "[Ordnername]" "[batch-Datei]"

 

Batch-Datei ist die Datei, an die die Parameter übergeben werden

Nicht die "" vergessen!!

 

Diese Parameter werden an dei Batch geliefet:

 

Para1: Ordner

Para2: Datum, als der Ordner erstellt wurde

Para3: Zeit, als der Ordner erstellt wurde

Para4: Datum, als der Ordner zum letzten mal geändet wurde

Para5: Zeit, als der Ordner zum letzten mal geändet wurde

Para6: Datum, als der Ordner zum letzten mal geöffnet wurde

Para7: Zeit, als der Ordner zum letzten mal geöffnet wurde

 

Das mit dem cscript ... kannst du natürlich auch eine Batch im DOS-Ordner machen lassen, z.B. so was (Folder.bat):

 

@echo off

cscript folder.vbs "%1" "%2" >>NUL

:ende

 

WICHTIG!!!:

Das folder.vbs nach cscript, musst du durch den gesamten datei-pfad erstzten, wenn die datei "folder.vbs" nicht im selben Ordner liegt!!!

 

z.B.: cscript S:\dateien\VBS\folder.vbs "......"

 

In der Hoffnung, dass dir das geholfen hat. ;)

Viel Glück :D

 

_______________________

Script:

 

'folder.vbs

'© 2003 BlackJake :D

'###############

'

set so=CreateObject("Scripting.FileSystemObject")

set fs=CreateObject("wScript.Shell")

Set ag=wscript.arguments

testfol2

Ordner=ag(0)

Batch1=ag(1)

set fg=so.getfolder(Ordner)

dim Temp(2)

temp(0)=fg.DateCreated

temp(1)=fg.DateLastModified

temp(2)=fg.DateLastAccessed

fs.run Batch1 & " " & Ordner & " " & temp(0) & " " & temp(1) & " " & temp(2)

wscript.quit

function testfol2

on error resume next

if not so.folderexists(ag(0)) then

msgbox "Falsche Syntax: Ordner existiert nicht!", vbexclamation+vbsystemmodal,"Syntaxfehler"

wscript.quit

end if

if not so.fileexists(ag(1)) then

msgbox "Falsche Syntax: Batch-Datei oder Programm-Datei existiert nicht!", vbexclamation+vbsystemmodal,"Syntaxfehler"

wscript.quit

end if

end function

 

'___________ENDE

 

BlackJake

 

 

_____________________

Es gibt für jede Lösung ein Problem.

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