Wiki
Clone wikipowershell / Home
PowerShell ... the "wrapper"!
Using Cygwin makes you wish for a "Why can't we all just get along" computer world. Why can't a Cygwin shell session launch a PowerShell script and get a result? Forget the Cygwin vs. PowerShell arguments. Ignore all the "Why would you want to do that" answers.
The powershell wrapper script started out as a simple 3 line bash script that would allow me to add a she-bang to a powershell .ps1 script file so it would execute like any other script in cygwin/bash. This would call powershell.exe like a good little interpreter to execute the script.
It worked Great! But I still wasn't happy. PowerShell needs options like "-SetExecutionPolicy" and others to run scripts. So I added options to the wrapper script. This was going like gang-busters!
So what can we add next? Well, why can't I call powershell -File /path/to/a/powershell/script.ps1
? Or even check if the file arg is actually a file and automagically add the "-File" arguement. You can call a perl script this way. So now you can just powershell script.ps1
directly in Cygwin and get an answer.
Why not just run a command from the wrapper, ala powershell -Command write-host Hello
. That's done too!
Examples:
http://stackoverflow.com/questions/14044671/running-powershell-via-cygwin?rq=1 using my script:
$ ./powershell -b -c 'Get-EventLog System | Where-Object { $_.EventID -match "6009" }' Index Time EntryType Source InstanceID Message ----- ---- --------- ------ ---------- ------- 454862 Oct 21 20:10 Information EventLog 2147489657 Microso... 453331 Oct 13 21:41 Information EventLog 2147489657 Microso... ...
$ ./powershell -b -c gsv Status Name DisplayName ------ ---- ----------- Running AdobeARMservice Adobe Acrobat Update Service Stopped AdobeFlashPlaye... Adobe Flash Player Update Service Running AeLookupSvc Application Experience ...
hmmm, what else can we add? What if I just want to run powershell as an interpreter directly in my session and then work interactively at the PS>
promtp?, Just say powershell
with no args and get me a nice old PS>
prompt waiting for input? No go! I stepped too far on this one. These two refuse to work together here.
Pretty hard to get powershell to be interactive in a rxvt or mintty terminal session in Cygwin_x86 and I doubt x64 is any better.
So here we are. A full featured wrapper to call powershell from Cygwin and the only thing I can't do is go interactive with powershell.exe and get a working prompt.
Tired of Google searching on this one. No answers on StachExchange. Hate to give up on it though...
Updated