Param(
[String]$Arguments
)
function CallScript {
Param(
[String]$Interpreter,
[String]$ScriptFile,
[String]$Arguments
)
[System.Diagnostics.ProcessStartInfo]$startInfo = `
[System.Diagnostics.ProcessStartInfo]::new()
$startInfo.FileName = $Interpreter
$startInfo.Arguments = "$($ScriptFile) $($Arguments)"
$startInfo.UseShellExecute = $False
$startInfo.CreateNoWindow = $True
$startInfo.RedirectStandardOutput = $True
$startInfo.RedirectStandardError = $True
[System.Diagnostics.Process]$Proc = `
[System.Diagnostics.Process]::new()
$Proc.StartInfo = $startInfo
if ($Proc.Start() -eq $False) {
Return
}
[System.IO.StreamReader]$stdOut = $Proc.StandardOutput
[System.IO.StreamReader]$stdErr = $Proc.StandardError
if (($stdOut -eq $null) -or ($stdErr -eq $null)) {
Return
}
$Result = $stdOut.ReadToEnd()
if ($Result.Length -eq 0) {
Return $stdErr.ReadToEnd()
} Else {
Return $Result
}
}
function Main {
"PowerShell Version: " + $PSVersionTable.PSVersion.Major + "." +
$PSVersionTable.PSVersion.Minor + [System.Environment]::NewLine
if ([String]::IsNullOrEmpty($($Arguments))) {
$Arguments = """Hello World"""
}
$Result = CallScript `
-Interpreter "C:\Program Files\Python\python.exe" `
-ScriptFile "C:\Dummy\CallPythonFromPS.py" `
-Arguments $Arguments
$Result
$Result = CallScript `
-Interpreter "C:\Program Files\AutoIt\AutoIt3_x64.exe" `
-ScriptFile "C:\Dummy\CallAutoItFromPS.au3" `
-Arguments $Arguments
$Result
}
Main
[Void][Console]::WriteLine("`nPress key...")
[Void][Console]::ReadKey("NoEcho,IncludeKeyDown")