以下のコードの変数として、1.txtのClassName =の後に来るものの代わりに、この間にあるものを使用したいと思います。
EntryText =船が沈んだ!|グリッドAO 77 | 変数、
(変数の後のコンマとその前の|に注意してください)
したがって、2番目の|で終わるテキスト行の後に取得します。カンマの前。
変数の前のテキスト行は同じで一定ですが、「グリッド」の後を除いて、2番目までは文字と数字が混在している可能性があります。
だから私は変数として使用しようとしています、その間にあるもの:
EntryText =船が沈んだ!|グリッド(文字または数字の任意の組み合わせ) | (可変)、(コンマ)
だから2番目の間につかむ| とコンマ。あなたより。ClassName =の後の変数の取得を、2番目の|の間にあるものに置き換えたいと思います。とコンマ。他にもあることを覚えておいてください| 取得したくないファイル内のコンマ、|の後に変数を取得したいだけです。「EntryText=Shipsunk!| Grid ...」の後の場合は、カンマの前。
繰り返しになりますが、グリッド部分は必要ありません。2番目の部分の後に来るものが欲しいです| カンマの前。EntryTextの行もたくさんあるので、それらすべてのその部分を取得して、コードに入れたいと思います。
したがって、ClassName =の後にあるものの代わりに、上記の変数の場所をコピーしたいと思います。
お時間をいただきありがとうございます!
@echo off
copy 2.txt 2.txt-backup
setlocal enableDelayedExpansion
>2.txt (
for /f "tokens=1* delims=:" %%A in ('findstr /n "^" 2.txt-backup') do (
( echo !ln!| findstr "^Type=206$" >NUL && set ln=ln ) || (
set "ln=%%B"
if "!ln:~0,6!"=="Class=" (
findstr /c:"ClassName=!ln:~6!" "E:\Dropbox\New folder\Log_*.txt" >"E:\Dropbox\New folder\null" && (
echo Class=ShipDummy
set "ln=Type=206"
)
)
if #!ln!==# (echo;) else echo !ln!
)
)
)
私は誰かからこのボトムコードを与えられましたが、それが私が望むものかどうか、またはそれを上記に適用する方法がわかりません:
for /f "tokens=3 delims=|" %%C in ("%%B") do for /f "tokens=1 delims=," %%D in ("%%C") do echo %%D
ありがとうございました!!!!!