バッチファイルを使用しているファイルから変数を設定しようとしています(ファイルハッシュは変数名です)。私はenableDelayedExpansionを使用しているとして、それは特殊文字が含まれている場合ファイルから変数へのforループの特殊文字の解析
、特に感嘆符(秒):ああ、私はこの2つの問題に直面して貼り付けました。
&
を&に変更する必要があります。
私はさまざまなソースから提供されたいくつかのソリューションを試しましたが、私の要求に合致しませんでした。
@echo off
set grep=binaries\grep.exe
set fileindex=binaries\index.htm
set count=0
for /f "tokens=* delims=" %%a in (crc.dat) do (
set count=!count! + 1
set filehash=%%a
%grep% --ignore-case -w "!filehash!" %fileindex%>> list.dat
)
そしてcrc.datファイル内に何の例:list.datに上記の私の現在のコードを使用して
Kabooom! Kablooey!
Kaboom & Kablooey
そして結果:
は、ここに私の現在のコードです
Kabooom Kablooey
Kaboom & Kablooey
私がlist.datで期待している結果:
Kabooom! Kablooey!
Kaboom & Kablooey
私は問題を正しく伝えてくれてありがとうと思います!
grepとfileindexに使用しているset文でコードを更新してください。 – Squashman
投稿を編集してgrepとfileindexの両方のset文を追加しました – Angga
FOR変数を環境変数に割り当てるのはなぜですか? GREPでFOR変数を使用すると、遅延拡張を有効にする必要はありません。 – Squashman