Используйте исполняемый файл в конвейере powershel - PullRequest
0 голосов
/ 26 февраля 2020

Привет, я использую исполняемый файл для декодирования некоторого файла журнала, например:

E:\DailyLogPrinter.bat -sourceFile E:\SScope.log -targetFile E:\Output.log

Но я хочу использовать тот же файл .bat в конвейере в скрипте powershell, первая часть получает строки журнала из последних 30 минут, затем я хочу декодировать эти строки:

$TTime = [datetime]::Now.AddMinutes(-30 )
(Get-Content "E:\SiteScope\logs\SiteScope$(get-date -f yyyy_MM_dd).v2.log").where({
    [datetime]($_ -replace "(^\S+\s\S+).*",'$1') -ge $TTime
},'SkipUntil') 

| use the output with DailyLogPrinter.bat | do some other thing with decoded data

ОБНОВЛЕНИЕ:

Итак, я открыл файл bat, и кажется, что он не поддерживает конвейерный ввод, эти внутренности файла летучей мыши:

@echo off

set SCRIPT_PATH=%~dp0

%~d0
cd %SCRIPT_PATH%

set CLASS_PATH=%CLASS_PATH%;..\WEB-INF\lib\ss_platform.jar;..\WEB-INF\lib\log4j.jar;..\WEB-INF\lib\commons-codec.jar;..\WEB-INF\lib\javacore.jar;

set JAVA_LOCATION=..\java\bin
if exist ..\..\..\java\bin\java.exe set JAVA_LOCATION=..\..\..\java\bin
if exist ..\..\..\..\java\bin\java.exe set JAVA_LOCATION=..\..\..\..\java\bin

set MAIN_CLASS=com.mercury.sitescope.platform.log.printer.DailyLogPrinter

%JAVA_LOCATION%\java.exe -Xmx512M -classpath %CLASS_PATH% %MAIN_CLASS% %*
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...