0

以前にいくつかの小さなバッチ ファイルを実行したことがありますが、フォルダーでファイル名を読み取る必要があるものはありませんでした。

フォルダをソートできるバッチ ファイルが必要です。

フォルダーを調べて、各テキスト ファイルを検索し、「文字列」が含まれている場合はそれを受け入れフォルダーに移動し、含まれていない場合は拒否フォルダーに移動する必要があります。

これに取り組む方法はありますか?

以前にテキストを見つけるために次のようなものを使用しました。

find /c "string" file
if %errorlevel% equ 1 goto

フォルダ内の各ファイルを検索する方法がわかりません。それらのファイル名は毎日変わります。

4

1 に答える 1

2

問題の説明で、これらのファイルはすべてファイルであると述べ.txtました。したがって、を使用してディレクトリ内のfor loop各ファイルをループし、を使用して目的の文字列を検索することをお勧めします。以下に投稿したコードは、このように機能します。基本的に、ディレクトリをデスクトップ(またはファイルが配置されている場所)に変更し、各ファイルをループして文字列を検索します。出力は(処理を高速化するために)にリダイレクトされ、これが成功した場合、ファイルはに移動されます。それ以外の場合、このファイルはに配置されます。(検索を覚えておいてください.txtfindstr.txtfindstrnul.txtC:\Users\Desktop\SuccessFolderC:\Users\Desktop\FailureFolder"string"、元の場所、および2つのフォルダーの場所を設定する必要があります)このコードは、実行しようとしていることに対して機能するはずです。コードに変更を加える必要があるかどうか教えてください=]

@Echo off
cd /D C:\Users\Desktop
FOR %%a in (*.txt) do (
findstr /C:"string" "%%a" >nul && move "%%a" "C:\Users\Desktop\SuccessFolder" || move "%%a" "C:\Users\Desktop\FailureFolder")
于 2012-10-17T17:09:07.283 に答える