Odpowiedzi:
Po kilku problemach (polecenie attrib nie zezwala na niektóre symbole wieloznaczne) wpadłem na następujący wiersz:
@for %%X in (.*.*) do attrib +h %%X
Po prostu umieść go w pliku wsadowym (.bat) i załatwi sprawę (dla tego katalogu).
Jeśli chcesz tego dla kilku kierunków, po prostu ustaw, aby działał raz dziennie w tych katalogach.
Mam nadzieję, że tego właśnie potrzebujesz.
Za pomocą programu Powershell zapisz następujące pliki skryptowe (np. Hidedotfiles.ps1) i uruchom je, gdy nie chcesz ukryć plików kropek.
Oczywiście następującą linijkę można uprościć, używając aliasów i „-f dla” -force ”i„ -r ”dla„ -recurse ”, ale dla pouczenia napisałem to w pełnej formie:
Get-ChildItem "C:\" -recurse -force | Where-Object {$_.name -like ".*" -and $_.attributes -match 'Hidden' -eq $false} | Set-ItemProperty -name Attributes -value ([System.IO.FileAttributes]::Hidden)
Zasadniczo Get-ChildItem -recurse -force pobiera wszystkie elementy i wyszukuje cyklicznie we wszystkich folderach, zmuszając do wyświetlenia ukrytych elementów. Następnie wyszukujemy pliki i foldery zaczynające się od kropki i wybieramy tylko pliki, które mają ukryty atrybut. Po tym, jak wymieniliśmy wszystkie pliki, ustawiliśmy ich atrybuty na ukryte za pomocą Set-ItemProperty.
Where-Object
i Set-ItemProperty
jest unecessary. Równie dobrze można to zrobić Get-ChildItem ".*" -Recurse -Force | ForEach-Object { $_.Attributes += "Hidden" }
.
Aby ukryć wszystkie pliki / katalogi kropkowe na dysku (zamiast w jednym katalogu), uważam, że ta odpowiedź działa najlepiej:
ATTRIB +H /s /d C:\.*
@for /d %%X in (.*.*) do attrib +h %%X