Respostas:
Após alguns problemas (o comando attrib não permite alguns caracteres curinga), criei esta linha:
@for %%X in (.*.*) do attrib +h %%X
Basta colocar um arquivo em lote (.bat) e ele faz o truque (para esse diretório).
Se você quiser isso para algumas diretivas, configure-o para executar uma vez por dia nesses diretórios.
Espero que seja isso que você precisa.
Usando o Powershell, salve o seguinte em um arquivo de script (por exemplo, hidedotfiles.ps1) e execute-o sempre que não quiser ocultar arquivos de ponto.
É claro que a seguinte linha única pode ser simplificada usando aliases e "-f para" -force "e" -r "para" -recurse ", mas para ser instrutivo, escrevi-o em sua forma completa:
Get-ChildItem "C:\" -recurse -force | Where-Object {$_.name -like ".*" -and $_.attributes -match 'Hidden' -eq $false} | Set-ItemProperty -name Attributes -value ([System.IO.FileAttributes]::Hidden)
Basicamente, Get-ChildItem -recurse -force obtém todos os itens e pesquisa recursivamente em todas as pastas, forçando a exibição de itens ocultos. Em seguida, pesquisamos arquivos e pastas que começam com o ponto e selecionamos apenas os arquivos que possuem um atributo oculto. Depois de listar todos os arquivos, definimos seus atributos como ocultos usando Set-ItemProperty.
Where-Object
e Set-ItemProperty
é desnecessário. Pode muito bem ser feito assim Get-ChildItem ".*" -Recurse -Force | ForEach-Object { $_.Attributes += "Hidden" }
.
Para ocultar todos os arquivos / diretórios de ponto em um disco (em vez de em um único diretório), acho que esta resposta funciona melhor:
ATTRIB +H /s /d C:\.*
@for /d %%X in (.*.*) do attrib +h %%X