Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Dateien Löschen ?????

Frage Microsoft

Mitglied: 687

687 (Level 1)

26.03.2002, aktualisiert 31.08.2006, 31158 Aufrufe, 9 Kommentare

Hallo Leute,
habe auf unserem Server Diverse CAD Programme am laufen, und diese produzieren bei bestimmten Berechnungen Dateien die nicht Automatisch gelöscht werden (*.sli, *.smf, *.vmf, *.ctl, *.crg, *.odf, *.mmp, *_s.stl ).
Ich möchte nun diese Dateien jeden Tag Automatisch Löschen wenn sie ab dem Heutigen Datum Älter als z.b. 14 Tage sind.
Denn Sofort Löschen ist nicht möglich da manche Dateien noch ein paar Tage nach ihrer Entstehung gebraucht werden.
Ist Jemanden eine Lösung meines Problems via Batch oder Programms bekannt.

THX John
Mitglied: ggedv
27.03.2002 um 08:27 Uhr
Einfach ein Perl-, WSH- oder VBS-Script schreiben, der die Festplatte bzw. bestimmte Verzeichnisse durchsucht und Dateien nach bestimmten Kriterien (in Deinem Fall das Datum) selektiert und löscht. Das kannst Du jeden Tag mit dem "Geplante Tasks" zu einer bestimmten Uhrzeit ausführen lassen.

Solche Scripte zu schreiben ist nicht schwer. Hilfe findest Du z. B. unter
http://msdn.microsoft.com/scripting.

Achtung bei Antivirus-Programmen. Manche haben eine Einstellung, die Ausführung aller Scripte mit Zugriff auf Dateisystem verhindern. Das hat Auswirkungen nicht nur auf die o. g. Script-Sprachen, sondern auch auf z. B. PHP, CGI (z. B. Perl), JSP oder ASP.

CU

Gregor Gabor
http://www.NThelp.de
Bitte warten ..
Mitglied: Floh
02.02.2005 um 18:29 Uhr
http://www.ashergul.net/executables/DeleteOlderFilesThan.exe

Nachdem ich eine ähnliche aufgabenstellung heute hatte und mir das rumgesuche im internet nach ein paar minuten zu blöd wurde hab ich eben schnell ein entsprechendes konsolen programm geschrieben.
obiger link führt zur exe, anbei noch der quellcode falls es jemand verändern möchte, für seine bedürfnisse (benötigt MFC)

Das Programm arbeitet noch nicht rekursiv in den verzeichnissen sondern nur im angegeben verzeichnis.

deleteFilesOlderThan.cpp : Definiert den Einsprungpunkt für die Konsolenanwendung.
Aufgabe:
Lösche Dateien älter als ein betimmter Zeitraum vom heutigen Tag zurückliegend
Parameter:
/del Löscht die Dateien
/show Zeigt die Dateien welche in den Zeitraum fallen
timespan Zeitspanne dateien älter als heute-Zeitspanne (in Tagen) werden gelöscht
path Pfad zum Verzeichnis welches nach zu löschenden Dateien durchsucht werden soll
// extension Dateiendung nach welcher gesucht werden soll

#include "stdafx.h"
#include <stdio.h>
#include <afx.h>


int main(int argc, char* argv[])
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind = INVALID_HANDLE_VALUE;
CTime tmNow,tmPast,tmMaxPast;
CTimeSpan tmDiff;
char action[5], directory[MAX_PATH],tmpDirectory[MAX_PATH], Extension[10];
int timespn;
char DirSpec[MAX_PATH];
DWORD dwError;

switch (argc) {

case 5 :
strcpy(action,argv[1]);
timespn = atoi(argv[2]);
strcpy(directory,argv[3]);
strcpy(Extension,argv[4]);
break;
default : printf("\nUSAGE:\t DeleteFilesOlderThan.exe [/del | /show] timespan path extension\n/del\tdelete the found files\n/show\tshow the files which will be deleted\n\ntimespan\tfiles older than timespan (in days) will be selected to show or\t\t\tdelete\npath\t\tpath to the directory which should be searched for older files\nextension\tfileextensions which should be found (* = all Files, *.exe search EXE-Files only)\n\n"); break;
}
tmDiff = CTimeSpan(timespn-1,0,0,0);
if (action) {
tmNow = CTime::GetCurrentTime();
tmMaxPast = tmNow - tmDiff;
strncpy(DirSpec,directory,strlen(directory)+1);
strcat(DirSpec,"\\");
strcat(DirSpec,Extension);

hFind = FindFirstFile(DirSpec, &FindFileData);
if (hFind == INVALID_HANDLE_VALUE) {
printf("Invalid file handle. Error is %u\n",GetLastError());
return -1;
} else {
if (!(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
tmPast = CTime(FindFileData.ftLastWriteTime);
printf("%s\t",tmPast.Format("%d.%m.%Y"));
printf("%s\t",FindFileData.cFileName);
if ((tmMaxPast > tmPast) && !stricmp(action,"/del")) {
printf("\tis deleted");
strcpy(tmpDirectory,directory);
strcat(tmpDirectory,"\\");
strcat(tmpDirectory,FindFileData.cFileName);
DeleteFile(tmpDirectory);
}
if ((tmMaxPast > tmPast) && !stricmp(action,"/show")) {
printf("\twill be deleted");
}
printf("\n");
}
while (FindNextFile(hFind, &FindFileData)) {
if (!(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
tmPast = CTime(FindFileData.ftLastWriteTime);
printf("%s\t",tmPast.Format("%d.%m.%Y"));
printf("%s\t",FindFileData.cFileName);
if ((tmMaxPast > tmPast) && !stricmp(action,"/del")) {
printf("\tis deleted");
strcpy(tmpDirectory,directory);
strcat(tmpDirectory,"\\");
strcat(tmpDirectory,FindFileData.cFileName);
DeleteFile(tmpDirectory);
}
if ((tmMaxPast > tmPast) && !stricmp(action,"/show")) {
printf("\twill be deleted");
}
printf("\n");

}

}
}
dwError = GetLastError();
FindClose(hFind);
if (dwError != ERROR_NO_MORE_FILES) {
printf("FindNextFile error. Error is %u\n",dwError);
return -1;
}
}
return 0;
}
Bitte warten ..
Mitglied: Floh
02.02.2005 um 18:33 Uhr
#include stdio.h
#include afx.h

jeweils mit den größer/kleinerzeichen
Bitte warten ..
Mitglied: Eric123
03.02.2005 um 10:32 Uhr
Möchte das programm gerne benutzen und benutzerdefiniert anpassen, was ist MFC ? Brauch das ja um etwas zu ändern...
Bitte warten ..
Mitglied: Floh
03.02.2005 um 10:58 Uhr
und das ganze wird von Visual C++ von Microsoft genutzt
Bitte warten ..
Mitglied: dergel
30.03.2005 um 17:00 Uhr
hi floh,
tolle sache...bin froh, das ich dieses tool hier gefunden habe.
bin leider im programmieren noch nicht eingestiegen
hätte jedoch anpassungsbedarf an dem tool
kann ich hier unterstützung von ihnen bekommen?
gerade diese rekursive abarbeitung der files und verzeichnisse wäre sehr interessant.
ist das viel aufwand?

...möchte logfiles in versch. verzeichniss-strukturen löschen.
die verzeichnissnamen werden automatisch generiert, kann somit keine festen namen im batch mitgeben.

wäre klasse hier hilfe zu bekommen.
vielen dank vorab...

gruss,
dergel
Bitte warten ..
Mitglied: dergel
04.04.2005 um 09:56 Uhr
hallo zusammen,
das ganze hat sich erledigt...
habe einen weiteren artikel hier im board gefunden, der mir bei der lösung meines problems geholfen hat:

"Batch Datei: Alte Dateien nach gewissen Alter löschen"

danke an alle... (echt gutes tool, "delage32" von horst schaeffer)

so long,
dergel
Bitte warten ..
Mitglied: FrankFiedler
31.08.2006 um 13:47 Uhr
guckst Du unter

www.frank-f.de/sw/xdel/

Beispiel: xdel /D:[Dein Ordner\Deine Dateien],/A:6,/P:C:\Löschprotokoll\Mailinglisten.txt (Diesen Aufruf in Verknüpfung stecken nun in im Autostart unterbringen)

löscht alle Dateien vom Typ [Deine Dateien - *.*usw.] im angegebenen Ordner die älter als 6 Tage sind und führt ein Protokoll drüber.

--
Der Fiedler
Bitte warten ..
Neuester Wissensbeitrag
Soziale Netzwerke

Facebook muss Daten von Whats App löschen

(4)

Information von brammer zum Thema Soziale Netzwerke ...

Ähnliche Inhalte
Batch & Shell
gelöst Powershell ältere Dateien löschen (6)

Frage von Cougar77 zum Thema Batch & Shell ...

Batch & Shell
gelöst Per Batch erste Zeile aus CSV Dateien löschen (15)

Frage von sirOne zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Netzwerk
gelöst Netzwerkaussetzer mit intel(r) ethernet-verbindung i219-v unter Windows 10 (32)

Frage von TrueFalken zum Thema Windows Netzwerk ...

Speicherkarten
gelöst Verschlüsselte USB-Sticks (19)

Frage von rudeboy zum Thema Speicherkarten ...

Hyper-V
Erfahrungsaustausch zu Hyper-V-Replikation (15)

Frage von DerWoWusste zum Thema Hyper-V ...