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
GELÖST

Datei löschen und Löschen protokollieren

Frage Entwicklung Batch & Shell

Mitglied: Ruebezahl

Ruebezahl (Level 1) - Jetzt verbinden

13.09.2006, aktualisiert 30.10.2006, 8737 Aufrufe, 7 Kommentare

Liebe Leute,


ich möchte eine Datei blabla.txt, die als versteckte Datei unter demselben Namen in vielen Unterverzeichnissen vorkommt, mit Hilfe einer Batch-Datei löschen.
Das Löschen dieser Datei soll in einer Log-Datei vermerkt sein:

Datei blabla.txt in U:\Verzeichnis\Ordner1 gelöscht
Datei blabla.txt in U:\Verzeichnis7\Ordner1\Mails gelöscht
Datei blabla.txt in U:\Test\Test2\ konnte nicht gelöscht werden
usw.


Das Ganze soll unter DOS von Windows 2000 / Windows 2003 Server lauffähig sein.


Hat jemand von Euch eine Idee?

Vielen Dank für Eure Mühe.


Herzliche Grüße
Ruebezahl
Mitglied: bve
15.09.2006 um 13:52 Uhr
Moin, eigentlich ganz simpel:

del c:\blabla.txt /ah /s>c:\test.log

/ah = löscht auch versteckte Dateien
/s = löscht Dateien in Unterverzeichnissen
= leitet Bildschirmausgabe in Datei um

Noch Fragen
Bitte warten ..
Mitglied: Ruebezahl
13.10.2006 um 15:27 Uhr
Hallo bve,

die Lösung ist geradezu verblüffend einfach; jedoch gibt DEL als Meldung "Datei wurde gelöscht - c:\WINNT\blabla.txt" anstatt "Datei blabla.txt in C:\WINNT gelöscht" aus. Es existiert offenbar keine Möglichkeiten, bei DEL den Text den Vorgaben anzupassen.
Wenn (aus welchen Gründen auch immer) das Löschen gescheitert ist, schweigt DEL und hinterlässt keinen Eintrag in der log-Datei.
Wurde die Datei überhaupt nicht gefunden, erscheint die Fehlermeldung "blabla.txt konnte nicht gefunden werden". Diese Meldung wird nicht in der log-Datei geschrieben.

Herzliche Grüße
Ruebezahl
Bitte warten ..
Mitglied: Biber
13.10.2006 um 19:44 Uhr
Moin Rübezahl,

da ja der DEL-Befehl keinen verwertbaren Errorlevel bei Fehler zu haben scheint, denken wir uns mal eine ganz andere Strategie aus.

Ich nenne die mal Vorher-Nachher-Strategie.
01.
::--- snipp DeleteTheseHiddenFiles.bat 
02.
@echo off & setlocal & set  "SetOfStartDirs=U:\ c:\temp\ "d:\Eigene Dateien"" 
03.
set "mylog=whatever.log" & set "TheHiddenFile=TheHiddenFilename.ext" 
04.
if exist vorher.txt del vorher.txt 
05.
for %%a in (%SetOfStartDirs%) do for /f "delims=" %%i in ('dir "%%~a\%TheHiddenFile%" /ah /s /b ^2^>nul') do echo %%~fi>>vorher.txt 
06.
for %%a in (%SetOfStartDirs%) do del "%%~a\%TheHiddenFile%" /ah /s /f >nul 2>nul 
07.
for /f "delims=" %%i in (vorher.txt) do ( 
08.
       if exist "%%i" @echo Datei %%~nxi  in %%~dpi gelöscht >>"%mylog%" 
09.
       if not exist "%%i" @echo Datei %%~nxi  in %%~dpi konnte nicht gelöscht werden>>"%mylog%" 
10.
11.
if exist vorher.txt del vorher.txt 
12.
:: ----snapp DeleteTheseHiddenFiles.bat [Ungetestete Skizze]
Anzupassen sind die SET-Anweisungen in Zeile 2 und 3 .
Gruß
Biber
Bitte warten ..
Mitglied: Ruebezahl
24.10.2006 um 12:20 Uhr
Hallo Biber,

vielen Dank für Deinen Vorschlag mit der Batch-Datei. Ich habe das mal getestet und bekomme immer wieder die Fehlermeldung

\"Die Datei \'vorher.txt\' kann nicht gefunden werden\".

Ursache scheint hier die Zeile mit den zwei FOR-Schleifen zu sein:

for %%a in (%SetOfStartDirs%) do for /f \"delims=\" %%i in (\'dir \"%%~a\\%TheHiddenFile%\" /ah /s /b ^2^>nul\') do echo %%~fi>>vorher.txt

Hast Du eine Idee?

Herzliche Grüsse
Ruebezahl
Bitte warten ..
Mitglied: Biber
25.10.2006 um 10:56 Uhr
Moin, Rübezahl,

gut, die Datei vorher.txt wird nur angelegt, wenn auch mindestens eine Datei des Namens "TheHiddenFilename.ext" gefunden wird.

Wird gar keine Datei dieses Namens gefunden, gibt es keine Liste der gefundenen Dateien (="vorher.txt").
Da ich diesen Fall gar nicht abprüfe, bekommst Du von meinem Schnipsel eine ähnlich aussagefähige Fehlermeldung wie sonst von M$ üblich.

Abhilfe:
Nach der ersten FOR..IN..DO-Anweisung noch eine Zeile (oder zwei) rein:
01.
if not exist vorher.txt echo Keine Dateien %TheHiddenFile% gefunden... nothing to do.... 
02.
if not exist vorher.txt goto eof:
Anmerkung: es kann natürlich auch sein, dass die Datei vorher.txt nicht angelegt werden kann, weil der Batch von einer CD gestartet wird oder Dir aus anderen Gründen die Rechte zum Schreiben im aktuellen Verzeichnis fehlen.
Deshalb lieber ändern:
Jetzt: "vorher.txt"
Besser/Sicherer: "%temp%\vorher.txt"

Denn ins %temp%-Verzeichnis gehört so etwas und dort hat auch jeder Schreibrechte.

Gruß
Biber
Bitte warten ..
Mitglied: Ruebezahl
30.10.2006 um 14:32 Uhr
Hallo Biber,


vielen Dank für Deine Mühe.
Ich habe Dein Script mit der zuletzt vorgeschlagenen Ergänzung nun in eine andere Batch-Datei eingebaut - es funktioniert alles einwandfrei. Die Datei hat nun auch die erste Bewährung in der Praxis bestanden und alle Beteiligten sind zufrieden - auch mit der Logdatei.
Übrigens habe ich für die Dokumentation ein anderes Script von Dir ("NumberMe.bat") herangezogen... es läuft super.

Nochmals herzlichen Dank
für Deine Mühe

Ruebezahl
Bitte warten ..
Mitglied: Biber
30.10.2006 um 14:40 Uhr
Vielen Dank für die Rückmeldung, Rübezahl,

ich setze diesen Beitrag dann mal auf "Gelöst".

Freut mich, dass es jetzt läuft.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Doppelte Dateneinträge per Batch aus Datei löschen? HILFE (7)

Frage von freshman2017 zum Thema Batch & Shell ...

Microsoft Office
PowerPoint Datei lässt sich auf IPAD nicht löschen (2)

Frage von itron2 zum Thema Microsoft Office ...

Batch & Shell
gelöst Batch Datei: PDF Dateien verschieben, umbenennen und löschen (4)

Frage von F0rcehunter zum Thema Batch & Shell ...

Windows 7
gelöst Gesperrte OneDrive Datei lässt sich nicht löschen (3)

Frage von malika zum Thema Windows 7 ...

Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(6)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(40)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Windows 10
gelöst Windows 10 Home "Netzlaufwerk nicht bereit" (19)

Frage von Oggy01 zum Thema Windows 10 ...

Exchange Server
gelöst RU 17 Exchange 2010 . Erfahrungen? (10)

Frage von keine-ahnung zum Thema Exchange Server ...

Datenbanken
gelöst MySQL Zeiterfassungs-Problematik (wer ist eingecheckt) (9)

Frage von NativeMode zum Thema Datenbanken ...

Windows Server
Festplatten Ruhezustand Windows Server 2016 (8)

Frage von ahaeuser zum Thema Windows Server ...