-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 に答える