2

Я не могу понять, как удалить конкретную строку с моим пакетным скриптом для выхода:

type: MD2
status: granted
date: 2016/03/11

type: MD2
status: detached
date: 2016/03/11

если статус отсоединен, то блок вывода «тип, дата и статус» не должен записываться / игнорироваться в выходном файле

Итак, что я делаю до сих пор:

@echo off
setlocal EnableDelayedExpansion
for /f "usebackq skip=10 tokens=1,5,9 delims= " %%a in ("Log.txt") do (
    set "date=%%a"
    set "type=%%b"
    set "status=%%c"
    echo %%c|find "more">nul && set "status=not granted"
    echo %%c|find "detached" >nul && set status=""
    echo type: !type!
    echo status: !status!
    echo date: !date!
    echo.
)>>Test.txt
pause

Пример Log.txt:

2016/03/11 00:00:25:478 I LICENSESERV MD2 (Dassault Systemes V5) granted to client test (42FB1010C6B1ED82-0a292138.1)/172.1.1.1|d|d@EUROPE.S-1-5-21-1832937852-2116575123-337272265-547921.0A292138.1.GGL-42FB1010C6B1ED82|C:\Program Files\ANSYS Inc\v170\AISOL\bin\winx64\ReaderHostU.exe 
2016/03/11 00:01:28:461 I LICENSESERV MD2 (Dassault Systemes V5) detached by timeout from client test (42FB1010C6B1ED82-0a292138.1)/10.41.33.56|d|d@EUROPE.S-1-5-21-1832937852-2116575123-337272265-547921.0A292138.1.GGL-42FB1010C6B1ED82|C:\Program Files\ANSYS Inc\v

1 ответ1

1

Если статус detached , не пишите блок «тип, дата и статус»

Это легко сделать с помощью команды if .

Заменить:

echo %%c|find "more">nul && set "status=not granted"
echo %%c|find "detached" >nul && set status=""
echo type: !type!
echo status: !status!
echo date: !date!
echo.

С:

if "!status!" NEQ "detached"  (
  echo type: !type!
  echo status: !status!
  echo date: !date!
  echo.
  )

Пример ввода:

2016/03/11 00:00:25:478 I LICENSESERV MD2 (Dassault Systemes V5) granted to client test (42FB1010C6B1ED82-0a292138.1)/172.1.1.1|d|d@EUROPE.S-1-5-21-1832937852-2116575123-337272265-547921.0A292138.1.GGL-42FB1010C6B1ED82|C:\Program Files\ANSYS Inc\v170\AISOL\bin\winx64\ReaderHostU.exe 
2016/03/11 00:01:28:461 I LICENSESERV MD2 (Dassault Systemes V5) detached by timeout from client test (42FB1010C6B1ED82-0a292138.1)/10.41.33.56|d|d@EUROPE.S-1-5-21-1832937852-2116575123-337272265-547921.0A292138.1.GGL-42FB1010C6B1ED82|C:\Program Files\ANSYS Inc\v

Пример вывода:

type: MD2
status: granted
date: 2016/03/11

Что мне делать, если я также хочу исключить статус detached; также?

Вы можете удалить ; от !status!

Заменить:

set "status=%%c"

С:

set status=%%c
set status=!status:;=!

Дальнейшее чтение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .