Po spuštění Script.cmd v DOS-CMD načte Script.ps1 datový soubor Data.txt a vrátí jako výstup tři hodnoty oddělené středníkem
(jméno parsovaného souboru;počet řádek s 'Process failed';počet řádek s 'Process success'),
které jsou načteny FOR/F cyklem a vypsány do CommandLine jako hodnoty oddělené čárkami.
----- Script.cmd -----
set DataFile=.\Data.txt
for /f "tokens=1,2,3 delims=;" %%a in ('powershell.exe -NoLogo -NoProfile -NonInteractive -Command "& '.\Script.ps1'" """%DataFile%"""') do (echo %%a,y%%b,%%c)
----- Script.cmd -----
----- Script.ps1 -----
Function Get-Data {
param([string]$File)
$FileContent = Get-Content $File
$Failed = ($FileContent | Select-String 'Process failed' | Measure-Object -Line).Lines
$Success= ($FileContent | Select-String 'Process success' | Measure-Object -Line).Lines
$OutPut = $($File+';'+$Success+';'+$Failed).Trim(' ')
return $OutPut
}
Get-Data -File $args[0]
----- Script.ps1 -----
----- Data.txt -----
Data
Process failed
Data
Process success
----- Data.txt -----