Refresh desktop.ini?

1 Antwort

Der Explorer aktualisiert nicht in jedem Fall die Darstellung eines Ordners nachdem Änderungen an der desktop.ini vorgenommen wurden. Es wird lediglich erkannt , wenn eine desktop.ini neu erstellt wird!

...ergo muss die desktop.ini kurz verschwinden und nachdem der Explorer dies bemerkt hat wieder auftauchen. Löschen können wir nicht, dann ist der Inhalt nicht mehr widerherzustellen. Aber wir können sie zweimal umbenennenDas sieht für den Explorer aus, als würde sie Neu erstellt.

Es gibt sicher eine API/PInvoke -Funktion um das Ereignis zum neueinlesen der desktop.ini auch gezielt zu trigern, aber bei einigen 10Tausend Funktionen wäre das eine Aufgabe für frostige Winderabende. Also löse ich das ganze mit roher Gewalt und einer kleinen Batch:

demo.cmd

set "BaseFolder=%UserProfile%\Desktop"
for /f "tokens=*" %%a in ('where /r "%BaseFolder%" "desktop.ini"') do (
  attrib "%%~fa" -h -s
  ren "%%~fa" "%%~nxa.off"
  ren "%%~fa.off" "%%~nxa"
  attrib "%%~fa" +h +s
)

Die Batch sucht desktop.ini rekursiv unter dem BasisOrdner, jede gefundene Datei wird kurz umbenannt und wieder zurück (zum vorherigen Namen). Das genügt um die nötige Aufmerksamkeit des Explorers zu erlangen. Die attrib-Befehle sind lediglich nötig um die Datei-Operation auf die versteckten Systemdateien zu ermöglichen.

Die Lösung ist nicht schön, aber in der Not frisst der Teufel Fliegen 😅

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren