Aktuelle Zeit: Mo 22. Jan 2018, 16:50

Alle Zeiten sind UTC + 1 Stunde




 Seite 1 von 1 [ 2 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Dateien unter DOS in den Papierkorb löschen.
BeitragVerfasst: Fr 17. Aug 2012, 16:12 
Administrator
Benutzeravatar

Registriert: 07.08.2008
Beiträge: 2473
Wohnort: Unimatrix Zero
...ist ja nicht unbedingt möglich. Lange habe ich nach einer Lösung gesucht, bis ich durch ein anderes Projekt bei AutoIt auf die Lösung stieß.

Ziemlich simpel gehalten, funktioniert aber prächtig. Somit kann man bspw. in einer Batch-Datei Dateien löschen die eben nicht im Nirwana landen, sondern wie beim Löschen über die Windows-GUI im Papierkorb. Kleiner Nachteil: das Papierkorb-Icon ändert sich nicht von "Leer" --> "Inhalt im Papierkorb" (erst wenn man drauf klickt). Die gelöschten Dateien lassen sich dann aber wie gehabt endgültig löschen oder eben "wiederherstellen" 8-)

Quellcode zum selbst kompilieren:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Res_Fileversion=0.0.0.1
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=p
#AutoIt3Wrapper_Res_Language=1031
#AutoIt3Wrapper_Res_requestedExecutionLevel=asInvoker
#AutoIt3Wrapper_Change2CUI=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

$File = $CmdLine[1]

If Not FileExists($File) Then
   ConsoleWrite(@LF & "Datei " & chr(34) & $File & chr(34) & " nicht vorhanden." & @LF)
   Exit
EndIf

$Ergebnis = FileRecycle($File)
If $Ergebnis = 1 Then
      ConsoleWrite(@LF & "Datei " & chr(34) & $File & chr(34) & " geloescht." & @LF)
Else
      ConsoleWrite(@LF & "Es ist ein Fehler aufgetreten..." & @LF)
EndIf


...oder fertig kompiliert, falls es jemand gebrauchen kann ;)


Dateianhänge:
Dateikommentar: Kompilierte Version zum entpacken...
recyle.zip [280.38 KiB]
142-mal heruntergeladen

_________________
Offline
  Profil Website besuchen  
 
 Betreff des Beitrags: Bestimmte Dateien nicht(!) löschen...
BeitragVerfasst: Mi 19. Sep 2012, 12:07 
Administrator
Benutzeravatar

Registriert: 07.08.2008
Beiträge: 2473
Wohnort: Unimatrix Zero
...und da trat das nächste Problemchen auf. Wie löscht man viele unterschiedliche Dateien aus einem Verzeichnis, möchte aber bestimmte Dateien(-typen) nicht löschen, also quasi ein "negiertes" del ab*.*?
Ok, ich könnte einfach den "recyle"-Befehl von oben aufbohren...
...oder kopiere die Dateien in ein Temp-Verzeichnis, lösche alles und verschiebe die Dateien zurück...
...oder ich probiere es mit Windows zu lösen, was nach einigem tüfteln nun auch funktioniert. Sieht total kryptisch aus...:

dir /b /A:-D *.* | findstr /B /S /I /V /C:"AB" /C:"34" > FTD.txt
FOR /f "tokens=*" %%x IN (FTD.txt) DO recyle "%%x"

dir /b /A:-D *.* erzeugt eine einfache Dateiliste, nur Dateinamen und ohne Subdirectories. Diese wird mittels Pipe ("|") an den findstr-Befehl weitergereicht
findstr /B /S /I /V /C:"AB" /C:"34" sucht in der übergebenen Liste am Anfang nach den Zeichen unter /C:"xyz", also hier nach allem, dass mit AB oder 34 anfängt. Ist das Ergebnis wahr, passiert nichts, andernfalls erfolgt die Ausgabe in die Textdatei (> FTD.txt). In FTD.txt (FilesToDelete) stehen also nun alle zu löschenden Dateien.
Die zweite Zeile ließt nun die Datei FTD.txt und löscht dort jede enthaltende Datei.
Löschbefehl in den Papierkorb (siehe oben). Es funktioniert hier natürlich ebenfalls jeder andere Befehl.

Als Batchdatei gespeichert und mit weiteren Platzhaltern versehen kann man sich so einen komfortablen "Non-Delete"-Befehl zusammenbauen. Durch Anpassung der findstr-Parameter lässt es sich noch weiter aufpimpen, wie dann bspw. alle *.pdf - Dateien im Verzeichnis nicht zu löschen.

 dir /b /A:-D *.* | findstr /B /S /I /V /C:"Suchtext-1" /C:"Suchtext-n" > FTD.txt
 FOR /f "tokens=*" %%x IN (FTD.txt) DO recyle "%%x"



_________________
Offline
  Profil Website besuchen  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
 Seite 1 von 1 [ 2 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  

cron