2

次のコマンドは、ファイルを繰り返し処理していて、いつか終了する必要があるため、私が望むものではない無限ループを作成します...

ここに私が持っているものがあります:

cd C:\
FOR /R %i IN (*.pst) do @echo %i

AppData に到達して .pst (AppData\Local\Microsoft\Outlook 内) を見つけると、AppData\Local 内に「Application Data」というショートカット フォルダーがあり、AppData\Local にループ バックしますが、その名前を追加し続けます。次のようなアドレスに:

%AppData%\Local\Application Data\Application Data\Application Data\Microsoft\Outlook\%filename%.pst

必要なすべてのファイルが見つかったときにループが終了するように、コードがループしないようにするために、またはショートカットを完全に無視するために、コードに何を追加できますか?

- - - - - -編集 - - - - - - -

これは似たようなことをしているようです:

dir /s /b *.pst
4

2 に答える 2

1

で再解析ポイントを除外できますDIR /A-L

ただし、DIR /A-L /S再解析ポイントのコンテンツは再解析ポイントではないため、使用しても機能しません。次のようにしてください。

使用する代わりにFOR:

FindFiles.bat *.pst c:\

FindFiles.bat次のファイルを作成します。

@ECHO OFF
:GetDirFiles %1=Wildcard %2=Path
FOR %%f IN ("%~f2\%~1") DO ECHO %%~ff
FOR /F "DELIMS=" %%d IN ('DIR /B /AD-L "%~f2"') DO CALL :GetDirFiles %1 "%~2\%%d"

これにより、再解析ポイントではないすべてのディレクトリが再帰的に取得され、各ディレクトリのパターンに一致するアイテムがエコーされます。

于 2013-09-12T10:04:06.143 に答える
0

forfilesわかりました。Windows 7 を使用している場合は、コンピュータ上にあるはずのものを使用することをお勧めします。詳細については入力forfiles /?してください。これを試して:

forfiles /p "C:\" /s /m "*.pst" /c "cmd /c (Echo @path)"

それは完全に機能するはずです。for /rループでこれを行う方法を探しています。おそらく. dir_ for /r /dこれがうまくいくかどうか教えてください。

モナ

于 2013-09-12T01:56:40.167 に答える