我如何修改它以使其能够搜索子目录?我尝试了一些不同的东西,但我似乎无法破解它?
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:
)
)
答案 0 :(得分: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
循环从\
开始(当前选择驱动器的根目录)和iterates运行所有子目录
popd
返回调用pushd
之前的目录。
这只是你的循环现在应该是什么样子的一个例子。其他一切都是一样的。
顺便说一下,你在脚本中使用了:autodetect1
,但它没有在任何地方定义......