我希望以遞回方式在目錄中的特定檔案夾名稱中查找特定檔案名,并在匹配或多個匹配時回傳完整路徑。我正在尋找一種模式搜索,它甚至可以使用 3 部分查找,即 (folderA\folderB\file.name)。但是 2 暫時可以。到目前為止,我的努力使我做到了這一點。但它非常慢。16 秒找到匹配。
::recursively find foldername\file.name combination
cd C:\searchFolder
for /r %a in (FolderName) do @if exist "%~fa\file.name" echo %~fa
我只需要冒險大約 2 到 4 級深度并拉出第一個檔案夾\file.ext 匹配項并獲取完整路徑。有沒有更快的方法來做到這一點,可能是 dir 命令或排除串列,甚至是真正的 *folder\file 模式搜索。
uj5u.com熱心網友回復:
讓我們首先通過示例檔案夾結構和file.name每個子檔案夾中名稱為 的檔案來闡明任務C:\SearchFolder:
C:\SearchFolder
├───FolderA
│ │ file.name
│ │
│ ├───FolderA
│ │ │ file.name
│ │ │
│ │ ├───FolderA
│ │ │ │ file.name
│ │ │ │
│ │ │ ├───FolderA
│ │ │ │ file.name
│ │ │ │
│ │ │ └───FolderB
│ │ │ file.name
│ │ │
│ │ └───FolderB
│ │ │ file.name
│ │ │
│ │ ├───FolderA
│ │ │ file.name
│ │ │
│ │ └───FolderB
│ │ file.name
│ │
│ └───FolderB
│ │ file.name
│ │
│ ├───FolderA
│ │ │ file.name
│ │ │
│ │ ├───FolderA
│ │ │ file.name
│ │ │
│ │ └───FolderB
│ │ file.name
│ │
│ └───FolderB
│ │ file.name
│ │
│ ├───FolderA
│ │ file.name
│ │
│ └───FolderB
│ file.name
│
└───FolderB
│ file.name
│
├───FolderA
│ │ file.name
│ │
│ ├───FolderA
│ │ │ file.name
│ │ │
│ │ ├───FolderA
│ │ │ file.name
│ │ │
│ │ └───FolderB
│ │ file.name
│ │
│ └───FolderB
│ │ file.name
│ │
│ ├───FolderA
│ │ file.name
│ │
│ └───FolderB
│ file.name
│
└───FolderB
│ file.name
│
├───FolderA
│ │ file.name
│ │
│ ├───FolderA
│ │ file.name
│ │
│ └───FolderB
│ file.name
│
└───FolderB
│ file.name
│
├───FolderA
│ file.name
│
└───FolderB
file.name
可以使用以下方法創建包含檔案的檔案夾結構:
@echo off
setlocal EnableExtensions DisableDelayedExpansion
set "BaseFolder=C:\SearchFolder"
for %%G in (A B) do (
for %%H in (A B) do (
for %%I in (A B) do (
for %%J in (A B) do (
md "
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/395342.html
上一篇:如何在遞回函式中回傳陣列?
下一篇:Python以層次結構輸出串列
