Temporäre Office 2007 Dateien rekursiv löschen
~$*.xlsx und so weiter in einer vorhandenen Ordnerstruktur löschen
Hallo alle Zusammen.
Ich habe ein kleines Problemchen...
Und zwar haben wir bei uns in der Firma eine riesige Ordnerstruktur, die auf einem DFS-System abgelegt ist.
Viele User öffnen und speichern dort massig Office-Dateien, wo es immer wieder vor kommt, dass die Dateien nicht ordnungsgemäß abgespeichert werden. Dadurch sammeln sich in den jeweiligen Ordnern sehr viele temporäre Dateien an, die natürlich auch Speicherplatz weg nehmen.
Ich habe nun schon versucht, die Dateien per Windows-Suche aufzulisten und zu löschen, allerdings findet die Windows-Suche die Dateien nicht. Eine einzelne Datei, kann ich damit suchen und finden, wenn ich den exakten Namen inklusive Dateierweiterung angebe. Ich hingegen möchte aber an einer Stelle einen Platzhalter eingeben, über den ich dann alle Dateien finden kann. (z.B. ~$*.xlsx um alle temporären Excel-Dateien zu finden)
Da dies aber aus irgendeinem Grund nicht funktioniert, habe ich versucht das über die Kommandozeile unter Windows zu machen
Dieser Befehl löscht rekursiv, also im aktuellen Ordner inklusive der Unterordner, alle Dateien mit der Dateierweiterung ".tmp".
Das funktioniert auch soweit, allerdings hier wieder nicht mit den Platzhaltern wie ich es mir vorstelle: "~$*.xlsx"
Ich würde ja auch gerne her gehen und die Dateierweiterung weglassen, aber dies ist nicht möglich, da wir bei uns Programme einsetzen, die auch "~$" Dateien erstellen, die für uns aber von wichtigkeit sind.
Hat vielleicht jemand hier im Forum eine Idee, wie wir diese Dateien einfach löschen können, ohne in den jeweiligen Ordner zu gehen und die per Hand zu löschen???
Ich bin über jede Hilfe dankbar.
Besten Dank und Beste Grüße,
Christian
Hallo alle Zusammen.
Ich habe ein kleines Problemchen...
Und zwar haben wir bei uns in der Firma eine riesige Ordnerstruktur, die auf einem DFS-System abgelegt ist.
Viele User öffnen und speichern dort massig Office-Dateien, wo es immer wieder vor kommt, dass die Dateien nicht ordnungsgemäß abgespeichert werden. Dadurch sammeln sich in den jeweiligen Ordnern sehr viele temporäre Dateien an, die natürlich auch Speicherplatz weg nehmen.
Ich habe nun schon versucht, die Dateien per Windows-Suche aufzulisten und zu löschen, allerdings findet die Windows-Suche die Dateien nicht. Eine einzelne Datei, kann ich damit suchen und finden, wenn ich den exakten Namen inklusive Dateierweiterung angebe. Ich hingegen möchte aber an einer Stelle einen Platzhalter eingeben, über den ich dann alle Dateien finden kann. (z.B. ~$*.xlsx um alle temporären Excel-Dateien zu finden)
Da dies aber aus irgendeinem Grund nicht funktioniert, habe ich versucht das über die Kommandozeile unter Windows zu machen
del *.tmp /s
Das funktioniert auch soweit, allerdings hier wieder nicht mit den Platzhaltern wie ich es mir vorstelle: "~$*.xlsx"
Ich würde ja auch gerne her gehen und die Dateierweiterung weglassen, aber dies ist nicht möglich, da wir bei uns Programme einsetzen, die auch "~$" Dateien erstellen, die für uns aber von wichtigkeit sind.
Hat vielleicht jemand hier im Forum eine Idee, wie wir diese Dateien einfach löschen können, ohne in den jeweiligen Ordner zu gehen und die per Hand zu löschen???
Ich bin über jede Hilfe dankbar.
Besten Dank und Beste Grüße,
Christian
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 105397
Url: https://administrator.de/contentid/105397
Ausgedruckt am: 22.11.2024 um 03:11 Uhr
10 Kommentare
Neuester Kommentar
Moin lordraydon,
des Rätsels Lösung ist nicht so furchtbar schwierig.
Einige dieser temporären "~$*.xlsx"-Dateien sind "unsichtbar", also haben das Dateiattribut "Hidden".
Deshalb werden sie sowohl vom "normalen" DIR-Befehl wie auch beim DEL-Befehl mit Wildcards ignoriert.
Bei einem "namentlichen" Ansprechen werden sie gefunden, wie Du ja auch geschildert hast.
Abhilfe / Strategie in einem Batch-Zweizeiler:
Probiere vorher mal als proof-of-concept am CMD-Prompt ein
Grüße
Biber
des Rätsels Lösung ist nicht so furchtbar schwierig.
Einige dieser temporären "~$*.xlsx"-Dateien sind "unsichtbar", also haben das Dateiattribut "Hidden".
Deshalb werden sie sowohl vom "normalen" DIR-Befehl wie auch beim DEL-Befehl mit Wildcards ignoriert.
Bei einem "namentlichen" Ansprechen werden sie gefunden, wie Du ja auch geschildert hast.
Abhilfe / Strategie in einem Batch-Zweizeiler:
- eine Runde für eventuell vorhandene ~$*.xlsx-Dateien mit "Del x:\startordner\~$*.xlsx"
- für die Dateien mit derselben Wildcard-Namensgebung UND Attribut Hidden
FOR /F "delims=" %%i in ('DIR /s /b /ah x:\startordner\~$*.xlsx') do del "%%i"
Probiere vorher mal als proof-of-concept am CMD-Prompt ein
FOR /F "delims=" %i in ('DIR /s /b /ah x:\startordner\~$*.xlsx') do @echo del "%i"
Grüße
Biber
Moin lordraydon,
CMD-Befehle (unter anderem FOR-Anweisungen) lassen sich als Einzelanweisungen direkt vom CMD-Prompt aus abfeuern ODER als Batchdatei (Endung *.cmd oder *.bat) als Mehrere-Anweisungen-in-einem-Rutsch ausführen.
Die dynamischen FOR-Variablen %i, %j usw. werden am CMD-Prompt mit einem Prozentzeichen (%i) geschrieben, in Batchdateien mit zwei Prozentzeichen (%%i, %%j, ...)
Daher Dein Syntaxfehler. Verdoppele die %-Zeichen in Deiner Bacht.cmd.
[am Cmd-Prompt]
Der Befehl
Versuche es erstmal so weit und poste dann eventuelle Restfragen.
Grüße
Biber
CMD-Befehle (unter anderem FOR-Anweisungen) lassen sich als Einzelanweisungen direkt vom CMD-Prompt aus abfeuern ODER als Batchdatei (Endung *.cmd oder *.bat) als Mehrere-Anweisungen-in-einem-Rutsch ausführen.
Die dynamischen FOR-Variablen %i, %j usw. werden am CMD-Prompt mit einem Prozentzeichen (%i) geschrieben, in Batchdateien mit zwei Prozentzeichen (%%i, %%j, ...)
Daher Dein Syntaxfehler. Verdoppele die %-Zeichen in Deiner Bacht.cmd.
[am Cmd-Prompt]
FOR /F "delims=" %i in ('DIR /s /b /ah C:\Users\cra\Desktop\test\~$*.xlsx') do @echo del "%i"
[in einer .cmd-/.bat-Batchdatei:]FOR /F "delims=" %%i in ('DIR /s /b /ah C:\Users\cra\Desktop\test\~$*.xlsx') do @echo del "%%i"
Der Befehl
- führt ein DIR-Kommando aus auf die Wildcards "~$*.xlsx" im angegebenen Verzeichnis
- und bezogen nur auf die Dateien mit Attribut Hidden (Schalter "-ah")
- die gefundenen Dateien werden einzeln angefasst durch die FOR /F-Anweisung
- "delims=" bewirkt die ordnungsgemäße Verarbeitung auch von Ordnern/Dateien mit "Leerzeichen im Namen"
- diese Dateinamen werden an das do @echo del "%%i" übergeben.
Versuche es erstmal so weit und poste dann eventuelle Restfragen.
Grüße
Biber
Moin lordraydon,
nein, das ist kein CMD.exe-spezifischer Schwachpunkt, sondern ein allgemeines Redmonder Praktikanten-und-Pfadlängen-Problem.
Diese PraktikantInnen konnten sich damals nichts vorstellen, was länger sein kann als 254 mm oder Zeichen.
Und ziemlich alle M$-Anwendungen werden auch noch bei soooooooooo langen Datei/Verzeichnis-Namen die Grätsche machen, wenn ein Windows-Betriebssystem mit einer Versionsnummer 35.x auf den Markt geworfen wird.
In diesem Fall kannst Du den Pfad z.B. über einer Subst- oder ein Net use-Kommando verkürzen.
Beispiele sind auch hier im Forum zu finden[Forumssuche "Pfadlänge"].
Deshalb nur angedeutet:
--> dann kannst Du so einen RattenschAwanz wie "...\Users\cra\Desktop\test\Neuer Ordner\Neuer Ordner" als Laufwerk Z: ansprechen.
[ das "A" in RattenschAwanz ist kein Tippfehler. sondern ein Unterlaufen der Forumsregeln. Sonst würde angezeigt. "Rattenschwanz" ]
Grüße
Biber
nein, das ist kein CMD.exe-spezifischer Schwachpunkt, sondern ein allgemeines Redmonder Praktikanten-und-Pfadlängen-Problem.
Diese PraktikantInnen konnten sich damals nichts vorstellen, was länger sein kann als 254 mm oder Zeichen.
Und ziemlich alle M$-Anwendungen werden auch noch bei soooooooooo langen Datei/Verzeichnis-Namen die Grätsche machen, wenn ein Windows-Betriebssystem mit einer Versionsnummer 35.x auf den Markt geworfen wird.
In diesem Fall kannst Du den Pfad z.B. über einer Subst- oder ein Net use-Kommando verkürzen.
Beispiele sind auch hier im Forum zu finden[Forumssuche "Pfadlänge"].
Deshalb nur angedeutet:
net use z: "\\einServer\einShare\Users\cra\Desktop\test\Neuer Ordner\Neuer Ordner"
-oder-subst z: "C.\Users\cra\Desktop\test\Neuer Ordner\Neuer Ordner"
--> dann kannst Du so einen RattenschAwanz wie "...\Users\cra\Desktop\test\Neuer Ordner\Neuer Ordner" als Laufwerk Z: ansprechen.
[ das "A" in RattenschAwanz ist kein Tippfehler. sondern ein Unterlaufen der Forumsregeln. Sonst würde angezeigt. "Rattenschwanz" ]
Grüße
Biber
Moin lordraydon,
sorry, die Antwort hat etwas gedauert...
Normalerweise sind "hidden files" immer nur insofern "unsichtbar, dass sie sicht nicht mit Wildcard-Befehlen erwischen lassen.
Also nicht mit einem "DIR *.* " oder "DEL *.*" oder ähnlichem.
Werden die Dateien explizit (namentlich) angefasst und angesprochen, verhalten sie sich wie alles Sichtbare, was man/frau so in die Finger bekommt.
Daran sollte es also nicht liegen.
Also--> Merk Dir Pfad und Namen einer dieser Dateien... (ggf. vom Bildschirm Copy&Pasten) und
... schau was passiert, wenn Du mit einem
... und falls ja, dann prüfe, was dieser Befehl anzeigt:
Dann schauen wir weiter.
Grüße
Biber
sorry, die Antwort hat etwas gedauert...
Normalerweise sind "hidden files" immer nur insofern "unsichtbar, dass sie sicht nicht mit Wildcard-Befehlen erwischen lassen.
Also nicht mit einem "DIR *.* " oder "DEL *.*" oder ähnlichem.
Werden die Dateien explizit (namentlich) angefasst und angesprochen, verhalten sie sich wie alles Sichtbare, was man/frau so in die Finger bekommt.
Daran sollte es also nicht liegen.
Leider löscht er die Dateien nun aber nicht, sondern gibt die Datei an und sagt, dass er diese Datei nicht finden kann...
kann das an dieser Stelle wieder irgendwie daran liegen, dass die Dateien versteckt sind???
kann das an dieser Stelle wieder irgendwie daran liegen, dass die Dateien versteckt sind???
Also--> Merk Dir Pfad und Namen einer dieser Dateien... (ggf. vom Bildschirm Copy&Pasten) und
... schau was passiert, wenn Du mit einem
DIR pfad\nameDerNichtGefundenenDatei.xyz
draufgehst... also ob da die gleiche Fehlermeldung kommt... und falls ja, dann prüfe, was dieser Befehl anzeigt:
Attrib pfad\nameDerNichtGefundenenDatei.xyz
Dann schauen wir weiter.
Grüße
Biber