搜索所有包含单个文件(而不是 2 个以上文件)的 Windows 文件夹?

搜索所有包含单个文件(而不是 2 个以上文件)的 Windows 文件夹?

有点奇怪的参数,但如果我可以运行搜索并只返回包含单个文件的文件夹,它将很有用。不会返回包含 2 个或更多文件的文件夹。这可以在 Windows 中完成吗?我也可以接受返回文件本身的搜索。

答案1

实现此目的的一种方法是使用内置的 Windows 脚本:

需要在单个文件夹中创建两个纯文本文件:

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

搜索脚本的前两行采用文件夹路径(可根据需要更改),并决定忽略包含一个文件且还包含子文件夹的文件夹。其余部分只是递归搜索文件夹并检查文件数。

search_launch 批处理文件将使用控制台(而不是 Windows GUI)启动脚本,并将输出(文件夹路径)重定向到名为 的文本文件search_results.txt。该文件将为空,或包含符合条件的任何文件夹的名称。

当我使用时,出现“拒绝访问错误” c:\(可能需要以管理员身份运行批处理文件),这可能无法检测到隐藏文件。

相关内容