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, 31256 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
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Entwicklung
Versteckte .(Punkt)Dateien löschen (3)

Frage von DarkJM zum Thema Entwicklung ...

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

Frage von Cougar77 zum Thema Batch & Shell ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...