有点奇怪的参数,但如果我可以运行搜索并只返回包含单个文件的文件夹,它将很有用。不会返回包含 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:\
(可能需要以管理员身份运行批处理文件),这可能无法检测到隐藏文件。