>>"results\txtmail.txt" findstr /i /p /s mail %userprofile%\*.txt
ここで、C:\ Users\Username\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5を検索から除外したい場合はどうすればよいですか?
findstr
が隠しビットを無視し、隠しフォルダー内のファイルを見つけた後、for
コマンド(それを尊重します)を使用して、バッチに向けて次のことを考え出しましたファイル:-
@echo off
pushd %userprofile%
for /r %%f in (*.txt) do echo %%f | findstr "\Temporary" >NUL: || findstr /i /p mail "%%f" nul:
popd
ノート:-
for /r
を機能させることができなかったため、pushd
/popd
を使用しました。findstr
はファイルパスで\Temporary
(これは詳しく説明できます)を探し、2番目のfindstr
が見つからない場合にのみ実行します。findstr
の追加のnul:
パラメータは、ファイル名が見つかった文字列で出力されることを保証します。渡されるファイルが1つしかない場合、通常は省略されます(これを行う別の方法があるかもしれませんが、このコマンドはあまり使用しません)。David Postillのコメントが上に表示されたとき、私はこのソリューションをチェックしていました。気付いたばかりですが、どのソリューションでも考慮する必要のあるいくつかのポイントが追加されるため、とにかく回答を送信します。