回答:
これを行う1つの方法は、組み込みのWindowsスクリプトを使用することです。
1つのフォルダーに2つのプレーンテキストファイルを作成する必要があります。
search.vbs
内容(基本的にコードサンプルから取得、私によってわずかに変更):
strDir = "i:\"
ignoreFolderCount = false
'*********************
set FSO = createobject("Scripting.FileSystemObject")
Set objDir = FSO.GetFolder(strDir)
getInfo objDir, ignoreFolderCount
'**********************
Sub getInfo(pCurrentDir, ignoreFolderCount)
For Each aItem In pCurrentDir.SubFolders
getInfo aItem, ignoreFolderCount
Next
if pCurrentDir.Files.Count <= 1 then
if pCurrentDir.Subfolders.Count = 0 or ignoreFolderCount then
wscript.echo pCurrentDir
end if
end if
End Sub
search_launch.bat
内容あり:
echo off
echo "Running process..."
cscript.exe search.vbs > search_results.txt
echo "Process complete"
pause
検索スクリプトの最初の2行は、フォルダーパス(それに合わせて変更)、およびサブフォルダーもある1つのファイルを持つフォルダーを無視する決定を取ります。残りはフォルダーを再帰的に検索し、ファイル数をチェックします。
search_launchバッチファイルは、コンソール(windows guiではなく)を使用してスクリプトを起動し、出力(フォルダーパス)をという名前のテキストファイルにリダイレクトしますsearch_results.txt
。これは空になるか、条件に一致するフォルダーの名前を持ちます。
に対して使用すると「アクセス拒否エラー」が表示されますc:\
(おそらく、管理者としてバッチファイルを実行する必要があります)。これはおそらく隠しファイルを検出しません。