substyle 20 Geschrieben 2. April 2003 Melden Teilen Geschrieben 2. April 2003 Hallo Leute .. :cool: ich versuche nun schon ne weile wie ich mittels der CMD rausbekomme wie alt ein Ordner schon ist , 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 Zitieren Link zu diesem Kommentar
grizzly999 11 Geschrieben 2. April 2003 Melden Teilen Geschrieben 2. April 2003 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 Zitieren Link zu diesem Kommentar
grizzly999 11 Geschrieben 2. April 2003 Melden Teilen Geschrieben 2. April 2003 Noch ein Beispiel: To list all the files older than 100 days on drive c: forfiles -pc:\ -s -m*.* -d-100 -c"cmd /c echo @file : date >= 100 days" grizzly999 Zitieren Link zu diesem Kommentar
BlackMan2 10 Geschrieben 2. April 2003 Melden Teilen Geschrieben 2. April 2003 Erst das Archiv-Attribut setzten: attrib [Ordner] +a Danach kannst du mit "dir [Ordner]" das Alter rauskriegen... Zitieren Link zu diesem Kommentar
zuschauer 10 Geschrieben 2. April 2003 Melden Teilen Geschrieben 2. April 2003 @Blackman2: Ab ins Bett ! Ist schon spät, fast Mitternacht ! :o Zitieren Link zu diesem Kommentar
substyle 20 Geschrieben 2. April 2003 Autor Melden Teilen Geschrieben 2. April 2003 Danke erstmal, aber ich greife nur ungerne auf das recource kit zu. Nicht weil es schlecht is, ne ne, nur weil ich gerne ohne "externe" dateien arbeite :) @ Blackman .. ich habes jetzt mal fix getestet ... so ganz check ich den Syntax noch nicht ... attrib is soweit klar, aber bei dir [ordner] /t .. und dann ???? subby Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 3. April 2003 Melden Teilen Geschrieben 3. April 2003 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] Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 3. April 2003 Melden Teilen Geschrieben 3. April 2003 [Edit] Der Originalbeitrag wurde auf Blub´s Wunsch hin gelöscht. zuschauer [/Edit] Zitieren Link zu diesem Kommentar
BlackMan2 10 Geschrieben 4. April 2003 Melden Teilen Geschrieben 4. April 2003 Na was soll ich schon sagen... NIX attrib /t oder so... Einfach nur (Beispiel: C:\Temp): Arrtib C:\Temp +a Der Nachteil ist allerdings, dass wenn man bei jedem neuen ordner das erst machen muss, dann weiß man ja auch ungefähr, wie alt der ist :) Zitieren Link zu diesem Kommentar
BlackMan2 10 Geschrieben 4. April 2003 Melden Teilen Geschrieben 4. April 2003 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. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.