
どちらも、隠し属性を持つファイルに対して再帰的なファイル検索を実行できcmd
ないことに気付きました。powershell
では、この問題を回避する方法はあるのでしょうか? つまり、問題のファイルから隠し属性を削除する以外に方法はありません。そのためには、事前にそれらの場所を知っておく必要があり、そうすると当然、この作業全体が無意味になります。
隠し属性を持つファイルでは動作しないのはなぜですか? これは何らかのセキュリティ機能ですか?
例 (cmd)
C:\>dir /b
Intel
PerfLogs
plant
Program Files
Program Files (x86)
Users
Windows
C:\>cd plant
C:\plant>dir /b
banana.txt
C:\plant>attrib banana.txt
A C:\plant\banana.txt
C:\plant>attrib -a +h banana.txt
C:\plant>dir /b
C:\plant>dir /b banana.txt
File Not Found
C:\plant>cd /
C:\>dir /b /s banana.txt
File Not Found
C:\>
答え1
隠しファイルを一覧表示するにはパワーシェルパラメータを使用する必要があります-Force
。 を使用すると、Get-ChildItem -Force -Recurse
隠しファイルを含むすべてのファイルのリストが表示されます。
Get-Help Get-ChildItem -Examples
:
Force パラメータは、隠しファイルを表示に追加します。
はい、直感的ではなく、パラメータ自体の説明ではわかりません。
dir /A
コマンドライン自体の場合、隠しファイルのみをリストするには またはになりますdir /AH
が、その出力をどのように検索するかはわかりません。
答え2
Windows コマンド プロンプトでは、すべてのファイルと再帰に対して /a および /s スイッチを使用します。
/A Displays files with specified attributes.
/S Displays files in specified directory and all subdirectories.
例
dir/a/s
Powershell では、すべてのファイルを表示するために、/a の代わりに -force を使用する同じ方法を使用します。
dir -force -s
または
dir -force -r
また、Powershell には ls があり、1 文字少なく入力できます。
ls -force -s
または
ls -force -r
答え3
最終的に答えは次のようになりました。
CM:
dir /a:H /s
POWERSHELL:
ls -ah -recurse
(オプション -force)