Привет, я использую исполняемый файл для декодирования некоторого файла журнала, например:
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% %*