Sembunyikan dotfile di Windows

26

Apakah ada cara agar Windows secara otomatis menyembunyikan file apa pun yang diawali dengan titik (mis. ".Svn"), seperti yang dilakukan di Linux?

mgbowen
sumber

Jawaban:

19

Setelah beberapa masalah (perintah attrib tidak mengizinkan beberapa wildcard) saya datang dengan baris ini:

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

Cukup letakkan File Batch (.bat) dan itu cukup (untuk direktori itu).

Jika Anda menginginkan ini untuk beberapa direktori, cukup atur untuk menjalankannya sekali sehari pada direktori tersebut.

Semoga ini yang Anda butuhkan.

Krazy_Kaos
sumber
5
Jika Anda ingin membuat direktori, tambahkan baris kedua@for /d %%X in (.*.*) do attrib +h %%X
Brian B
Anda dapat menjalankannya langsung dari cmd, cukup cd ke folder induk yang Anda inginkan lalu jalankan tanpa dua persen, cukup satu:> @untuk / D% X di (. *) Lakukan attrib + h% X
Sergio Abreu
jawaban terbaik yang saya temukan
roberto tomás
6

Menggunakan Powershell, simpan yang berikut ini dalam file skrip (mis. Hidedotfiles.ps1) dan jalankan kapan pun Anda tidak ingin menyembunyikan file dot.

Tentu saja one-liner berikut dapat disederhanakan dengan menggunakan alias dan "-f untuk" -force "dan" -r "untuk" -recurse "tetapi untuk menjadi instruktif saya telah menuliskannya dalam bentuk lengkap:

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

Pada dasarnya Get-ChildItem -recurse -force mendapatkan semua item dan mencari secara berulang di semua folder yang memaksa item yang tersembunyi muncul. Kemudian kami mencari file dan folder yang dimulai dengan titik dan pilih hanya file yang memiliki atribut tersembunyi. Setelah kami mendaftarkan semua file, kami mengatur atributnya untuk disembunyikan dengan menggunakan Set-ItemProperty.

mu7z
sumber
1
Keduanya Where-Objectdan Set-ItemPropertytidak perlu. Ini bisa dilakukan seperti Get-ChildItem ".*" -Recurse -Force | ForEach-Object { $_.Attributes += "Hidden" }.
Tom A. Vibeto
4

Untuk menyembunyikan semua file dot / direktori pada disk (daripada dalam satu direktori), saya menemukan jawaban ini paling berhasil:

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

BungleFeet
sumber