0

findstr や gawk を使用して、必要な方法で Windows コマンドの出力を正確に返すことができるかどうか疑問に思っていました。現在、出力を生で返し、空白行を取り除き、必要なものを解析しています。学習の一環として、これをより良く行う方法を知りたいと思っていました。

生の出力:

Change 2086888 on 2012/01/23 by user1@server1

        test_description_1.2.3.4@29816

Change 2086888 on 2012/01/23 by user1@server2

        test_description2_4.5.6.7@29816

Change 2078677 on 2012/01/20 by user2@server1

        test_description3_7.8.9.10@29816

私はその出力を取得し、php でこれに解析します。

1. 2086888,test_description_1.2.3.4@29816
2. 2086888,test_description2_4.5.6.7@29816
3. 2078677,test_description3_7.8.9.10@29816

自分で少し簡単にするために、出力から空白行を削除します。空白行を findstr にパイプし、/V "^$" を使用します。だからそれは | findstr /V "^$".

コマンドラインから直接phpで解析した出力を取得するにはどうすればよいですか?

4

1 に答える 1

1

forcmd.exe のコマンドは空白行をスキップするため、次の方法で解析する方が簡単な場合があります。

@Echo Off
setlocal enabledelayedexpansion
set linenum=1
for /f "tokens=1,2" %%A in (output.txt) do @(
  if %%A==Change set result=%%B
  if not %%A==Change (
    echo !linenum!. !result!,%%A
    set /a linenum=!linenum!+1
  )
)   
endlocal
于 2012-01-23T23:31:34.250 に答える