Antworten:
Nach einigen Problemen (der attrib Befehl erlaubt keine Platzhalter) habe ich diese Zeile gefunden:
@for %%X in (.*.*) do attrib +h %%X
Legen Sie einfach eine Batch-Datei (.bat) darauf und es erledigt den Trick (für dieses Verzeichnis).
Wenn Sie dies für einige Direktiven wünschen, stellen Sie es einfach so ein, dass es einmal am Tag in diesen Verzeichnissen ausgeführt wird.
Hoffe das ist was du brauchst.
Speichern Sie mit Powershell Folgendes in einer Skriptdatei (z. B. hidedotfiles.ps1) und führen Sie es aus, wenn Sie Punktdateien nicht ausblenden möchten.
Natürlich kann der folgende Einzeiler vereinfacht werden, indem Aliase und "-f für" -force "und" -r "für" -recurse "verwendet werden.
Get-ChildItem "C:\" -recurse -force | Where-Object {$_.name -like ".*" -and $_.attributes -match 'Hidden' -eq $false} | Set-ItemProperty -name Attributes -value ([System.IO.FileAttributes]::Hidden)
Grundsätzlich ruft Get-ChildItem -recurse -force alle Elemente ab und durchsucht alle Ordner rekursiv, sodass ausgeblendete Elemente angezeigt werden. Dann suchen wir nach Dateien und Ordnern, die mit dem Punkt beginnen, und wählen nur die Dateien aus, die ein verstecktes Attribut haben. Nachdem wir alle Dateien aufgelistet haben, setzen wir ihre Attribute mithilfe von Set-ItemProperty auf ausgeblendet.
Where-Object
und Set-ItemProperty
ist nicht notwendig. Es kann genauso gut gemacht werden wie Get-ChildItem ".*" -Recurse -Force | ForEach-Object { $_.Attributes += "Hidden" }
.
Um alle Punktedateien / Verzeichnisse auf einer Festplatte (anstatt in einem einzelnen Verzeichnis) auszublenden, finde ich, dass diese Antwort am besten funktioniert:
ATTRIB +H /s /d C:\.*
@for /d %%X in (.*.*) do attrib +h %%X