用于在子文件夹中查找文件夹并获取路径的批处理脚本
Batch Script to Find a Folder inside Sub Folders and get Path
我正在尝试获取包含 .snapshot 文件夹的目录路径。 .snapshot 应在所有父目录和子目录中搜索。
我有一个类似于树命令输出的目录结构(只是更复杂,部署需要一个巨大的 NAS 驱动器)
我的脚本,如下所示,到目前为止只列出了可能包含 .snapshot 的 100 个目录中的一个
set Dir=C:\Vol
cd %Dir%
for /d /r "%Dir%" %%a in (*) do if /i "%%~nxa"==".snapshot" set "folderpath=%%a"
echo "%folderpath%"
输出:
C:\Vol\xnd76540\u44753\mike.smith\.snapshot
我的问题
如何检查一个文件夹的所有子目录中的 .snapshot,返回到父目录并按照另一条路径在其他子目录中再次搜索 .snapshot 等等?
性能提示表示赞赏。
找不到更相关的代码段。
使用
set Dir=%1
cd %Dir%
for /d /r "%Dir%" %%a in (*) do if /i "%%~nxa"==".snapshot" set "folderpath=%%a"
echo "%folderpath%"
保存这个批处理文件说 temp.bat
现在在另一个批处理文件中通过传递参数来调用它
temp.bat "C:\Vol1"
temp.bat "another location"
你几乎完成了
for /d /r "%Dir%" %%a in (*) do if /i "%%~nxa"==".snapshot" (
echo %%~dpa
)
或者,
for /d /r "%Dir%" %%a in (.snapshot) do if exist "%%~fa" (
echo %%~dpa
)
问题中原始for
的问题是它在迭代时分配一个变量,当for
结束时,回显的值是最后分配的值,因为在每次迭代中值被覆盖。
相反,回显 运行 for
中的值,您将获得完整列表。
我正在尝试获取包含 .snapshot 文件夹的目录路径。 .snapshot 应在所有父目录和子目录中搜索。
我有一个类似于树命令输出的目录结构(只是更复杂,部署需要一个巨大的 NAS 驱动器)
我的脚本,如下所示,到目前为止只列出了可能包含 .snapshot 的 100 个目录中的一个
set Dir=C:\Vol
cd %Dir%
for /d /r "%Dir%" %%a in (*) do if /i "%%~nxa"==".snapshot" set "folderpath=%%a"
echo "%folderpath%"
输出:
C:\Vol\xnd76540\u44753\mike.smith\.snapshot
我的问题
如何检查一个文件夹的所有子目录中的 .snapshot,返回到父目录并按照另一条路径在其他子目录中再次搜索 .snapshot 等等? 性能提示表示赞赏。
找不到更相关的代码段。
使用
set Dir=%1
cd %Dir%
for /d /r "%Dir%" %%a in (*) do if /i "%%~nxa"==".snapshot" set "folderpath=%%a"
echo "%folderpath%"
保存这个批处理文件说 temp.bat
现在在另一个批处理文件中通过传递参数来调用它
temp.bat "C:\Vol1"
temp.bat "another location"
你几乎完成了
for /d /r "%Dir%" %%a in (*) do if /i "%%~nxa"==".snapshot" (
echo %%~dpa
)
或者,
for /d /r "%Dir%" %%a in (.snapshot) do if exist "%%~fa" (
echo %%~dpa
)
问题中原始for
的问题是它在迭代时分配一个变量,当for
结束时,回显的值是最后分配的值,因为在每次迭代中值被覆盖。
相反,回显 运行 for
中的值,您将获得完整列表。