-1

我该如何修改它以使其能够搜索子目录?我尝试了一些不同的东西,但我似乎无法破解它?

set /p "folder=Folders Name that the photo's are in: "

setlocal
if "%folder%" == "" call :autodetect1
cls
for %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
      if exist "%%d:\%folder%\" ( 
          echo Device was found on %%d: && set folderfound=%%d:\%folder%\
          ) else (
          echo Device was not found on %%d:
      )
)
4

1 回答 1

1

您需要使用for /r循环递归地迭代目录:

for %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
    pushd %%d:\
    for /r \ %%p in (.) do (
        if exist "%%~p\%folder%\" ( 
            echo Device was found on %%d: && set "folderfound=%%~p\%folder%\"
        ) else (
            echo Device was not found on %%d:
        )
    )
    popd
)

简短说明:
pushd命令切换到存储在 . 中的字母的驱动器%%d。循环从(当前选择驱动器
的根目录)开始,并迭代运行所有子目录。返回之前被调用的目录。for /r\
popdpushd

这只是您的循环现在应该是什么样子的一个示例。其他一切都保持不变。

顺便说一句,你:autodetect1在你的脚本中使用,但它没有在任何地方定义......

于 2012-08-26T10:57:48.147 回答