Domanda

Mi stavo chiedendo se è possibile utilizzare Findstr e / o Guawk per restituire l'output di un cmd di Windows esattamente come ho bisogno che sia.Attualmente sto restituendo l'uscita RAW, quindi spogliando le linee vuote e analizzando ciò di cui ho bisogno.Proprio come una cosa di apprendimento, speravo di poter vedere come questo può essere fatto meglio.

L'uscita RAW:

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
.

Prendo quella uscita e analizzo su questo con 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
.

Per renderlo un po 'più facile su me stesso, rimuovo le linee vuote dall'uscita conducinandola a Findstr e utilizzando / v "^ $".Quindi è |findstr / v "^ $".

Come posso ottenere l'output che analizzo con PHP direttamente dalla riga di comando?

È stato utile?

Soluzione

Comando for in cmd.exe Skips Blank Lines, quindi potrebbe essere più facile analizzarlo in questo modo:

@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
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top