2017-08-15 7 views
1

findstrの機能を覚えようとしているので、他のバッチスクリプトに関する質問に数回出てきます。私はディレクトリ内の複数のファイルを使って単語(この場合は 'webview')を探すようにしようとしています。理想的には、見つかった行とファイル名を引くことになります。しかし、プログラムはこの種の無限ループに陥ってしまい、強制的に終了させなければなりません。私が数時間それを見つめているので、findstrによって引き起こされているか、それを引き起こしているのかについての助けは素晴らしいでしょう。私の現在のコードは以下の通りです:ファイルディレクトリにfindstrを使用するとエラーが発生する

ECHO off 
SETLOCAL enabledelayedexpansion 

ECHO Please input the path to the app directory you'd like scanned 
SET /p directorypath= 
CD %directorypath% 

ECHO Scanning files for Webview 
(
FOR /F "delims=" %%a in ('findstr /I /S /M "webview" *.json') DO (
    SET "line=%%a" 
    SET "line=!line:*webview=!" 
    FOR /F "delims=<" %%b in (!line!) DO ECHO %%b 
)) > WebviewScanResults.txt 

:eof 

UPDATE:参照用に更新されたコードです。私は上記のコードをいくつかのファイルタイプを* .jsonに置き換えて2〜3回実行しても問題ありません。

+0

/Mオプション検索キーを含む出力はファイル名のみ。 – LotPings

+0

このバッチファイル[Local_Search_Engine.bat](https://pastebin.com/ADdjPEfH) – Hackoo

+0

を見ることができますが、無限ループはないと思いますが、指定されていないので、 'findstr'はコンソールでデータを待っています任意のファイルを検索したり、リダイレクトしたり、データをパイプしたりしませんでした。 – aschipfl

答えて

1

だけでテストされていない試み、遅すぎる私のために:

@ECHO off 
SETLOCAL enabledelayedexpansion 

ECHO Please input the path to the app directory you'd like scanned 
SET /p directorypath= 
PushD "%directorypath%" 

ECHO Scanning files for Webview 
(
FOR /F "tokens=1*delims=:" %%a in ('findstr /I /S "webview" *.html') DO (
    SET "line=%%b" 
    SET "line=!line:*webview=!" 
    FOR /F "delims=<>" %%b in ("!line!") DO ECHO %%a:%%b 
)) > WebviewScanResults.txt 
+0

上記の説明に従って、フォルダ内のすべてのファイルを検索しようとしていますが、これにはもっと良い方法がありますか? – JustKay

+0

検索対象のファイルタイプは何ですか? – LotPings

+0

私はJSONファイルを調べようとしていますが、理想的にはこのディレクトリ内のさまざまな種類のファイルを処理できます。 – JustKay

関連する問題