Nascondi dotfile in Windows


26

Esiste un modo per nascondere automaticamente a Windows qualsiasi file con prefisso (ad esempio ".svn"), come avviene in Linux?

Risposte:


19

Dopo alcuni problemi (il comando attrib non consente alcuni caratteri jolly) ho trovato questa riga:

@for %%X in (.*.*) do attrib +h %%X

Basta metterlo in un file batch (.bat) e fa il trucco (per quella directory).

Se vuoi questo per alcune directory, basta impostarlo per l'esecuzione una volta al giorno su quelle directory.

Spero che questo sia ciò di cui hai bisogno.


5
Se vuoi fare delle directory, aggiungi una seconda riga@for /d %%X in (.*.*) do attrib +h %%X
Brian B,

Puoi eseguirlo direttamente da cmd, solo cd nella cartella principale che desideri e quindi eseguire senza doppie percentuali, solo uno:> @for / D% X in (. *) Do attrib + h% X
Sergio Abreu,

migliore risposta che ho trovato
roberto tomás,

6

Utilizzando Powershell, salvare quanto segue in un file di script (ad es. Hidedotfiles.ps1) ed eseguirlo ogni volta che non si desidera nascondere i file di punti.

Naturalmente il seguente one-liner può essere semplificato usando gli alias e "-f per" -force "e" -r "per" -recurse "ma per essere istruttivo l'ho scritto per intero:

Get-ChildItem "C:\" -recurse -force | Where-Object {$_.name -like ".*" -and $_.attributes -match 'Hidden' -eq $false} | Set-ItemProperty -name Attributes -value ([System.IO.FileAttributes]::Hidden)

Fondamentalmente Get-ChildItem -recurse -force ottiene tutti gli elementi e cerca ricorsivamente in tutte le cartelle forzando la visualizzazione degli elementi nascosti. Quindi cerchiamo file e cartelle che iniziano con il punto e selezioniamo solo i file che hanno un attributo nascosto. Dopo aver elencato tutti i file, abbiamo impostato i loro attributi su hidden usando Set-ItemProperty.


1
Entrambi Where-Objected Set-ItemPropertyè inutile. Può anche essere fatto come Get-ChildItem ".*" -Recurse -Force | ForEach-Object { $_.Attributes += "Hidden" }.
Tom A. Vibeto,

4

Per nascondere tutti i file / directory di punti su un disco (anziché in una singola directory), trovo che questa risposta funzioni meglio:

ATTRIB +H /s /d C:\.*

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.