tcox8 Posted February 24, 2017 Posted February 24, 2017 Hello, Currently I am running a script that calls a powershell script. To read the results of that I am reading StdOut. I am parsing things accordingly but unfortunately it doesn't parse correctly all the time and I end up missing parts of the string or other problems. My question then is, what is the best results for reading what is returned when running a powershell script or something similar? "There are only 10 types of people in the world: Those who understand binary, and those who don't"
water Posted February 24, 2017 Posted February 24, 2017 Example how I use PS to create a mailbox and write all messages from StdOut and StdErr to a log file: $sCMD = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command . <command goes here>" $pid = Run($sCMD, @SystemDir, @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD + $STDERR_CHILD) StdinWrite($pid, @CRLF) StdinWrite($pid) ; Process STDOUT $sSTDOUT = "" While 1 $sOutput = StdoutRead($pid) If @error Then ExitLoop If $sOutput <> "" Then $sSTDOUT = $sSTDOUT & @CRLF & $sOutput WEnd ; Process STDERR $sSTDERR = "" While 1 $sOutput = StderrRead($pid) If @error Then ExitLoop If $sOutput <> "" Then $sSTDERR = $sSTDERR & @CRLF & $sOutput WEnd My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
tcox8 Posted February 27, 2017 Author Posted February 27, 2017 Thanks for the help! My problem was that I was attempting to process each line from StdoutRead as it was happening. What worked for me was to do like what is in the example in the help file (of course!) and use $sOutput &= StdoutRead($pid). Now I just parse the $sOuput after the While Loop. Problem solved! "There are only 10 types of people in the world: Those who understand binary, and those who don't"
junkew Posted February 28, 2017 Posted February 28, 2017 Alternative to build a listener and make client in autoit https://learn-powershell.net/2014/02/22/building-a-tcp-server-using-powershell/ FAQ 31 How to click some elements, FAQ 40 Test automation with AutoIt, Multithreading CLR .NET Powershell CMDLets
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now