小さな問題が数日間私を悩ませ続けます。* .exeバイナリからregexpで定義できる文字列、「1.01.01.00T123」などのテキストを環境変数に抽出して、さらに使用しようとしています。
私は文字列を見つけました
findstr /i [0-9]\.[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9][T][0-9][0-9][0-9] name.exe>outp.bin
今では少し小さいバイナリ、おそらく200バイトの私の文字列です。次に、「for / f」でfindstrの出力を使用しようとしましたが、バイナリにどの区切り文字を使用すればよいか、何も保証されません。ドットやブランクでさえ行き来することができます。
何かのようなもの:
for /f "tokens=1,2,3,4* delims=^." %%a in ('findstr /i [0-9]\.[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9]T[0-9][0-9][0-9] name.exe') do (
echo %%a
echo %%b
echo %%c
echo %%d
)
途中でしか機能しません。最初の部分は長すぎます。最後の部分「xxTxxx」は、この定義ではトークンではありません。ドットに加えて、私の文字列だけでなく、バイナリの内部でも発生する可能性があります。
常に最初のバイトをカットして、ループ内のoutp.binを短くしてから、文字列がoutp.binの先頭にあるかどうかを確認するようなものを考えました。しかし、これを行う方法はまだ見つかりません。出来ますか?
正規表現の結果を変数にコピーするだけの方法はありますか?
標準のコマンドシェルで正規表現の魔法のコマンドを見逃したことを願っています。