問題タブ [findstr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
252 参照

batch-file - 複数のパイプへのシェル出力リダイレクト

cmd.exe では、特定のコマンドが次の形式で出力を生成します。

代わりに生成するようにフォーマットしたいと思います:

それ、どうやったら出来るの?

私の推測では、「&」(並列コマンド)、「|」の組み合わせです。(パイプ)、「findstr」、および行の関連部分を切り取る別のコマンドを使用できます。

0 投票する
2 に答える
6294 参照

regex - FINDSTRでサブパターンを使用する

変数に格納されている文字列の有効性を確認する必要があります。外部CLIユーティリティ(grep、awkなど)を使用できないため、FINDSTRを選択しました。文字列の形式は(正規表現で)次のとおりです。

サブパターン(|。 "*")を確認する方法がわかりません。現在、私のコードは次のとおりです。

よろしく。

0 投票する
2 に答える
479 参照

parsing - バッチ ファイルを解析して結果を返す

バッチ ファイルを使用して、パラメーターの 1 つを解析する必要があります。結果は、バッチ ファイル内のコマンドの 1 つに送られます。

したがって、バッチ ファイルのパラメータの 1 つは次のようになります。

Lorem [ABC-1234] ipsum

バッチ ファイル内のコマンドの 1 つは、上記のパラメーターの ABC-1234 値を必要とします。regexp の使用法は非常に優れています。FINDSTR はそれを見つけますが、パターンが見つかった場合は入力を返します。

echo Lorem [ABC-1234] ipsum | findstr /R "\[[A-Z]*\-[0-9]*\]"

これは以下を返します:

echo Lorem [ABC-1234] ipsum

しかし、私は取得したいです

ABC-1234

0 投票する
2 に答える
10303 参照

windows - Windowsバッチ:行に「apple」または「tomato」が含まれている場合は、ファイル内のすべてのファイルを検索します。

ファイル内のすべての行をループし、その行に「apples」または「tomato」が含まれている場合はその行を出力する単純なバッチを作成しようとしています。

1つの文字列を見つけて出力するこのコードがありますが、同じバッチで2番目の文字列を取得できません。また、それらを見つけたときに線をエコーさせたいです。

「apples」または「tomato」のいずれかを含む行を見つける必要があります。必要な2行で上記のコードを簡単に実行できますが、行を相互に出力する必要があります。

たとえば、私は必要です:

いいえ:

それから

前もって感謝します。

0 投票する
1 に答える
4493 参照

string - 正規表現で findstr を使用して文字列のセクションを検索する

の各行をループしfiles.txt、ファイルが かどうかを識別し、このcar情報を に保存するコードを作成しました。これは、 コマンドを使用し、およびのリストを検索することによって実行されます。本質的にコードが設計されている方法では、 の最初の行を取り、 で文字列を見つけることができるかどうかを確認します(そうであればに出力されます) で文字列を検索します(文字列が で見つかった場合は に出力されます)に)、文字列が car.txt または のいずれにも見つからない場合、テキストはに出力されます。boatneitherSendType.txtfindstrboat.txtcar.txtfiles.txtcar.txtcarSendType.txtboat.txtboat.txtboatSendType.txtboat.txtneitherSendType.txt

現在、コードは文字列行全体を検索しています。11111_2222-22_2010-09-09_10-24-20.zip各文字列は( 11111=ID、2222-22=model、2010-09-09=date、10-24-20=transaction ID)に似ています。

行全体を検索する現在の findstr 行を置き換えて、日付部分を除く文字列全体を検索したいと思います。入力されているファイルの例とともに、参照用に以下のコードを添付しました。前もって感謝します!





望ましい出力:


UPDATE 10/15 3:00 PM dbenham のコードと解析手法を使用した現在のアプローチは次のとおりです。

0 投票する
1 に答える
1134 参照

for-loop - Windowsバッチのバイナリから正規表現文字列を抽出します

小さな問題が数日間私を悩ませ続けます。* .exeバイナリからregexpで定義できる文字列、「1.01.01.00T123」などのテキストを環境変数に抽出して、さらに使用しようとしています。
私は文字列を見つけました

今では少し小さいバイナリ、おそらく200バイトの私の文字列です。次に、「for / f」でfindstrの出力を使用しようとしましたが、バイナリにどの区切り文字を使用すればよいか、何も保証されません。ドットやブランクでさえ行き来することができます。
何かのようなもの:

途中でしか機能しません。最初の部分は長すぎます。最後の部分「xxTxxx」は、この定義ではトークンではありません。ドットに加えて、私の文字列だけでなく、バ​​イナリの内部でも発生する可能性があります。
常に最初のバイトをカットして、ループ内のoutp.binを短くしてから、文字列がoutp.binの先頭にあるかどうかを確認するようなものを考えました。しかし、これを行う方法はまだ見つかりません。出来ますか?
正規表現の結果を変数にコピーするだけの方法はありますか?
標準のコマンドシェルで正規表現の魔法のコマンドを見逃したことを願っています。

0 投票する
1 に答える
7853 参照

batch-file - 2つのfindstr(およびパイプ出力)を持つ1つのタイプ

私は次のような名前の50個のファイルを持っています:CPUNAME_installer.txtそしてそれぞれの内容は次のようなものです:

...など、数百行の場合。コード11724、1034、または1487の行があるかどうかを確認し、trueの場合は、行全体を別のフォルダーにある同じ名前の別のテキストファイルにパイプします。

今のところ私はこの実用的な解決策を持っています:

...ただし、ファイルごとに6つのコマンドを実行するため、時間がかかります。

各ファイル(または同様のもの)のコマンドの数を減らすことでこれを改善することは可能ですか?

0 投票する
0 に答える
465 参照

file - findstr が見つけた後にファイルを開く

コマンド ライン クラスのバッチを作成しています。この時点ではかなり単純です。そのため、最後に到達するまで、ほとんどの部分でうまく実行されます。使い方が正しいのかわかりません。findstrコマンドの後、ファイルif existを開く必要がありますが、ファイルが見つかっても開きません。findstr

0 投票する
2 に答える
4146 参照

batch-file - 引用符付きのバッチ findstr

このスクリプトを変更して正確な検索を行う方法を見つけようとしています。文字列を検索する必要があります (例: "123.12" -- 引用符付き)

これは今までの私のスクリプトです:

これは私のファイルdata.txtです

「123.123」「345.345」「794.922」

(引用符付き)

問題は、findstr が解析された値 123.12 を見つけていることですが、それは私のリストには存在しません。その一部として 123.123 と 123.12 を誤って検出しています。そのため、引用符で検索する方法があるかどうかを知りたいのです。つまり、解析された値をフォーマットし、引用符を追加してテキスト ファイル内を検索する方法があるかどうかを知りたいのです。

"%1" を試しましたが成功しませんでした。

前もって感謝します !!


編集

特定の IP をブロックするようにファイアウォール バッチ スクリプトを変更しようとしています。

これがスクリプトです

これはブロックされた IP ファイルです: http://pastebin.com/cP4BteDM

今、たとえば 10.02.0 をブロックしようとすると、コンソールに "10.02.02" が表示されます。10.02.0が「instr」「10.02.02」だからだと思います。FINDSTR 文のこの問題により、たとえば「10.02.0」を禁止することはできなくなります。

助けてくれてありがとう、私はあなたの答えを試してみましたが運が悪かったです:S

0 投票する
3 に答える
3301 参照

windows - 行 x から行 y までのファイルを読み取る方法 (dos/win バッチ ファイル)

一連のログ ファイルがあります。

これらのログ ファイルを findstr で解析して、テキスト文字列の最初のインスタンスを特定し、ファイル名と、一致が見つかった行を変数として返します。

次に、findstr を使用して、一致が見つかったファイルを解析し、別のテキスト文字列を探します。一致する行番号を変数として返します。

これでファイル、開始行番号と終了行番号ができました。

行番号の間のテキスト ブロックを返す必要があります。

すべての出力は、変数 casenotes で表されるテキスト ファイルにリダイレクトされます。

これが私のコードです:

アドバイスをいただければ幸いです。