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

Temporäre Office 2007 Dateien rekursiv löschen

Frage Microsoft Microsoft Office

Mitglied: lordraydon

lordraydon (Level 1) - Jetzt verbinden

07.01.2009, aktualisiert 14.01.2009, 7496 Aufrufe, 10 Kommentare

~$*.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
01.
del *.tmp /s
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
Mitglied: Biber
07.01.2009 um 16:55 Uhr
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:
  • eine Runde für eventuell vorhandene ~$*.xlsx-Dateien mit "Del x:\startordner\~$*.xlsx"
  • für die Dateien mit derselben Wildcard-Namensgebung UND Attribut Hidden
01.
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
Bitte warten ..
Mitglied: lordraydon
07.01.2009 um 17:59 Uhr
Hallo Biber,

Habe das eben mit einem Testordner bei mir auf der Festplatte getestet und habe leider folgende Fehlermeldung bekommen :
01.
C:\Users\cra\Desktop\test>dir 
02.
 Datenträger in Laufwerk C: ist SW_Preload 
03.
 Volumeseriennummer: CE3D-BE1F 
04.
 
05.
 Verzeichnis von C:\Users\cra\Desktop\test 
06.
 
07.
07.01.2009  17:53    <DIR>          . 
08.
07.01.2009  17:53    <DIR>          .. 
09.
07.01.2009  17:55                93 batch.cmd 
10.
06.01.2009  17:59    <DIR>          Neuer Ordner 
11.
               1 Datei(en),             93 Bytes 
12.
               3 Verzeichnis(se), 137.967.935.488 Bytes frei 
13.
 
14.
C:\Users\cra\Desktop\test>batch.cmd 
15.
"\Users\cra\Desktop\test\~$*.xlsx')" kann syntaktisch an dieser Stelle nicht ver 
16.
arbeitet werden. 
17.
 
18.
C:\Users\cra\Desktop\test>FOR /F "delims=" \Users\cra\Desktop\test\~$*.xlsx') do 
19.
 @echo del "i" 
20.
C:\Users\cra\Desktop\test>
Kannst du mir mal irgendwie erläutern, was dieser Befehl genau macht und für was die einzelnen Attribute stehen??

Besten Dank für deine schnelle Hilfe,
Christian

[EDIT]

Inhalt der Bacht.cmd ist
01.
FOR /F "delims=" %i in ('DIR /s /b /ah C:\Users\cra\Desktop\test\~$*.xlsx') do @echo del "%i"
Bitte warten ..
Mitglied: Biber
07.01.2009 um 18:16 Uhr
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]
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
Bitte warten ..
Mitglied: lordraydon
07.01.2009 um 18:31 Uhr
Hallo Biber,

Erstmal vielen Dank für deine schnelle und gute Hilfe.
Mein vollstes Respekt, für deine Kenntnisse in der Kommandozeilen-Umgebung von Windows.

Ergebnis der Batch sieht nun folgendermaßen aus:
01.
C:\Users\cra\Desktop\test>dir 
02.
 Datenträger in Laufwerk C: ist SW_Preload 
03.
 Volumeseriennummer: CE3D-BE1F 
04.
 
05.
 Verzeichnis von C:\Users\cra\Desktop\test 
06.
 
07.
07.01.2009  17:53    <DIR>          . 
08.
07.01.2009  17:53    <DIR>          .. 
09.
07.01.2009  18:25                95 batch.cmd 
10.
06.01.2009  17:59    <DIR>          Neuer Ordner 
11.
               1 Datei(en),             95 Bytes 
12.
               3 Verzeichnis(se), 137.968.070.656 Bytes frei 
13.
 
14.
C:\Users\cra\Desktop\test>batch.cmd 
15.
 
16.
C:\Users\cra\Desktop\test>FOR /F "delims=" %i in ('DIR /s /b /ah C:\Users\cra\De 
17.
sktop\test\~$*.xlsx') do @echo del "%i" 
18.
del "C:\Users\cra\Desktop\test\~$test - Kopie (2).xlsx" 
19.
del "C:\Users\cra\Desktop\test\~$test - Kopie.xlsx" 
20.
del "C:\Users\cra\Desktop\test\Neuer Ordner\~$test - Kopie (4).xlsx" 
21.
del "C:\Users\cra\Desktop\test\Neuer Ordner\Neuer Ordner\~$test - Kopie (3).xlsx 
22.
23.
 
24.
C:\Users\cra\Desktop\test>
Werde das nun noch auf dem DFS mit ein paar Testdateien versuchen, bevor ich es wirklich auf die "echten" Dateien loslasse ;)

Werde die Ergebnisse bis Ende der Woche dann hier veröffentlichen.

Nochmals vielen dank und beste Grüße,
Christian
Bitte warten ..
Mitglied: lordraydon
07.01.2009 um 18:51 Uhr
Hallo Biber,

Ich habe doch noch ein kleines Problem... Zumindest hoffe ich das es klein ist^^

Und zwar sind auf dem Server anscheinend die Pfade etwas zu lang, weswegen die Kommandozeile folgende Fehlermeldung ausgibt:
01.
Der Verzeichnisname ******************* ist zu lang.
Ich schätze mal, dass er dann in diesen Verzeichnissen den Befehl anwenden kann.
Kann ich das irgendwie umgehen, oder ist die Kommandozeile an diese Stelle schlicht weg zu "schwach" auf der Brust???

Vielen Dank und noch einen schönen Abend,
Christian
Bitte warten ..
Mitglied: Biber
07.01.2009 um 19:08 Uhr
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:
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. "Ratten###" ]

Grüße
Biber
Bitte warten ..
Mitglied: lordraydon
07.01.2009 um 19:32 Uhr
Hallo Biber,

Auch hier nochmals "Danke"... Dann werde ich die Ergebnisse der Batch-Datei mit "batch.cmd >> log.txt" zwischenspeichern. Somit kann ich ja sehen, welche Verzeichnisse definitiv zu lang sind und kann dann her gehen, mir ein Netzlaufwerk anlegen, das zu den "fehlenden" Pfaden verweist und dort nochmals die Batch ansetzen lassen.

Teste das weiterhin und melde mich dann wieder.

Vielen Dank für die ganze Hilfe und dann einen schönen Abend,
Christian
Bitte warten ..
Mitglied: lordraydon
13.01.2009 um 11:16 Uhr
Hallo Biber,

Ich habe das Ganze nun mit zwei verschiedenen Batch-Files gelöst...

Hier die erste:
01.
@CLS 
02.
@COLOR A5 
03.
@echo Wonach soll ich suchen? 
04.
@set /p sSuche=Eingabe: 
05.
@echo Wo soll ich suchen? 
06.
@set /p sPfad=Eingabe: 
07.
@echo Soll  ich wirklich in und unterhalb von %sPfad% nach %sSuche% suchen??? 
08.
@PAUSE 
09.
@echo Es wird nach %sSuche% in und unterhalb von %sPfad% gesucht! >> log.txt 
10.
@FOR /F "delims=" %%i in ('DIR /s /b /ah "%sPfad%%sSuche%"') do @echo del "%%i" >> log.txt 
11.
@COLOR 07 
12.
@echo Die Suche ist nun Fertig. 
13.
@PAUSE
Und in der zweiten wird aus
01.
´@FOR /F "delims=" %%i in ('DIR /s /b /ah "%sPfad%%sSuche%"') do @echo del "%%i" >> log.txt
01.
´@FOR /F "delims=" %%i in ('DIR /s /b /ah "%sPfad%%sSuche%"') do del "%%i" >> log.txt
Das ganze hat super funktioniert und läuft nun auch als geplanter Task auf den Servern, damit garnicht erst der Datenmüll aufläuft ;)

Habe das auch noch ein wenig abgewandelt, dass wir das Skript variabel an verschiedenen Orten mit verschiedenen Suchkriterien laufen lassen können *Ganz stolz auf mich bin*

An dieser Stelle nochmals vielen Dank für deine Hilfe und dem Know-How, das du hier aufbringst.
Christian
Bitte warten ..
Mitglied: lordraydon
13.01.2009 um 13:59 Uhr
Hallo Biber,

Ich schon wieder^^

Ich habe nun doch noch ein Problemchen...
Habe nun wie in meinem letzten Kommentar beschrieben, das @echo weggelasssen.
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???

Danke für deine Hile.

Beste Grüße,
Christian
Bitte warten ..
Mitglied: Biber
15.01.2009 um 18:24 Uhr
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.

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???

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
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Windows Netzwerk
gelöst Dateiberechtigung Office 2007 und Office 2013 (3)

Frage von Maverick6 zum Thema Windows Netzwerk ...

Batch & Shell
14 Tage alte Dateien automatisch löschen - Shell (1)

Frage von traller zum Thema Batch & Shell ...

Windows Server
gelöst Administrator kann auf Server keine EXE-Dateien kopieren, löschen, anlegen (5)

Frage von Winfried-HH zum Thema Windows Server ...

Microsoft Office
gelöst Speicherpfade in Office 2007 ändern! (2)

Frage von mike7050 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (13)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...