Câu trả lời:
Sau một số vấn đề (lệnh attrib không cho phép một số ký tự đại diện) Tôi đã đưa ra dòng này:
@for %%X in (.*.*) do attrib +h %%X
Chỉ cần đặt nó một tệp Batch (.bat) và nó thực hiện thủ thuật (cho thư mục đó).
Nếu bạn muốn điều này cho một vài chỉ thị, chỉ cần đặt nó để chạy một lần một ngày trên các thư mục đó.
Hy vọng đây là những gì bạn cần.
Sử dụng Powershell lưu các mục sau trong tệp tập lệnh (ví dụ: hidedotfiles.ps1) và chạy nó bất cứ khi nào bạn không muốn ẩn các tệp chấm.
Tất nhiên, một lớp lót sau đây có thể được đơn giản hóa bằng cách sử dụng các bí danh và "-f cho" -force "và" -r "cho" -recurse "nhưng để được hướng dẫn, tôi đã viết nó ra dưới dạng đầy đủ:
Get-ChildItem "C:\" -recurse -force | Where-Object {$_.name -like ".*" -and $_.attributes -match 'Hidden' -eq $false} | Set-ItemProperty -name Attributes -value ([System.IO.FileAttributes]::Hidden)
Về cơ bản Get-ChildItem -recurse -force nhận được tất cả các mục và tìm kiếm lặp lại trong tất cả các thư mục buộc các mục ẩn xuất hiện. Sau đó, chúng tôi tìm kiếm các tệp và thư mục bắt đầu bằng dấu chấm và chỉ chọn các tệp có thuộc tính ẩn. Sau khi chúng tôi liệt kê tất cả các tệp, chúng tôi đặt thuộc tính của chúng thành ẩn bằng cách sử dụng Set-ItemProperty.
Where-Object
và không cần thiết Set-ItemProperty
. Nó cũng có thể được thực hiện như thế nào Get-ChildItem ".*" -Recurse -Force | ForEach-Object { $_.Attributes += "Hidden" }
.
Để ẩn tất cả các tệp / thư mục dấu chấm trên đĩa (chứ không phải trong một thư mục), tôi thấy câu trả lời này hoạt động tốt nhất:
ATTRIB +H /s /d C:\.*
@for /d %%X in (.*.*) do attrib +h %%X