OK、8 つの異なる変数 (名前、ホスト、年、月、時、分、秒) のセットの 1 つ以上のエントリを含むテキスト ヘッダーを持つファイルが何百もあります。値が最初に表示されるときは、次のようになります。
@name 4 10
3 4 DHARLAN
この後は毎回 (変数セットはファイルごとに 1 ~ 100 回出現する可能性があります)、次のようにのみ表示されます。
3 4 DHARLAN
問題は、この場合にたまたま 4 が 1 から 99 の間の任意の値になる可能性があることです。したがって、次のファイルでは次のようになります。
3 15 DHARLAN
したがって、実際には eavh 変数のエントリは次のようになります。
3 ## <value>
## は、ヘッダーの前半で次のように決定されます。
@name ## X
FOR /F TOKENS がどのように機能して近いものを取得するかについて、私は十分に理解していません。
What I need is to parse a directory and end up with a file something like:
<filenameA> <name1> <host1> <year1> <month1> <day1> <hour1> <minute1> <second1>
<filenameA> <name2> <host2> <year2> <month2> <day2> <hour2> <minute2> <second2>
<filenameB> <name1> <host1> <year1> <month1> <day1> <hour1> <minute1> <second1>
...
私がこれまでに持っているもの:
FOR /f "tokens=*" %%i IN ('dir /a-d /s /b') DO call :findfile "%%i"
:findfile
REM Print Filename
FINDSTR /B /M "#UGC">>output.txt
REM set Name Variable, need 2nd word (7th & if exists (8th) character) from this line only
FINDSTR /B "@name">%%n
REM Find all lines with name variable
FINDSTR /B "3 %n%">>output.txt
これを行うことができるプログラムへの提案でさえ、助けていただければ幸いです。