Відповіді:
Після деяких проблем (команда attrib не дозволяє використовувати деякі символи) я придумав такий рядок:
@for %%X in (.*.*) do attrib +h %%X
Просто покладіть його в пакетний файл (.bat) і він виконує трюк (для цього каталогу).
Якщо ви хочете зробити це протягом кількох напрямків, просто встановіть його запуск один раз на день у цих каталогах.
Сподіваюсь, що це те, що вам потрібно.
Використовуючи Powershell, збережіть наступне у файлі сценарію (наприклад, hidedotfiles.ps1) та запустіть його, коли ви не хочете приховувати крапкові файли.
Звичайно, наступний однокласник можна спростити, використовуючи псевдоніми і "-f для" -force "і" -r "для" -recurse ", але щоб бути повчальним, я виписав його у повній формі:
Get-ChildItem "C:\" -recurse -force | Where-Object {$_.name -like ".*" -and $_.attributes -match 'Hidden' -eq $false} | Set-ItemProperty -name Attributes -value ([System.IO.FileAttributes]::Hidden)
В основному Get-ChildItem -recurse -force отримує всі елементи та рекурсивно виконує пошук у всіх папках, змушуючи показувати приховані елементи. Потім ми шукаємо файли та папки, які починаються з крапки, і вибираємо лише ті файли, які мають прихований атрибут. Після того, як ми перерахуємо всі файли, ми встановимо їх атрибути приховані за допомогою Set-ItemProperty.
Where-Object
і Set-ItemProperty
інше не потрібно. Це так само добре можна зробити так, як Get-ChildItem ".*" -Recurse -Force | ForEach-Object { $_.Attributes += "Hidden" }
.
Щоб приховати всі дискові файли / каталоги на диску (а не в одному каталозі), я вважаю, що ця відповідь найкраще працює:
ATTRIB +H /s /d C:\.*
@for /d %%X in (.*.*) do attrib +h %%X