PowerShell Tab Completion for External Commands (MSIEXEC.EXE in particular)
Posted on 2015-01-05
When using PowerShell, either the console or ISE (as a shell - I'm not concerned with scripting for this question), how does one tab complete when using an external command so that .\ is NOT placed in front of your argument.
So my specific example is this: I am a Setup Developer. I use msiexec.exe all the time..
So to test my packages I go to (instead of CMD prompt) PowerShell and type say something like:
(assume testpackage.msi is in my current directory)
PS C:\Packages\TestPackageFolder> msiexec.exe /i test <hit tab complete here and I get>
PS C:\Packages\TestPackageFilder> msiexec.exe /i .\testpackage.msi
Now, msiexec.exe has no idea what .\testpackage.msi means and can't find testpackage.msi - Therefore I have to backspace and delete .\ so that finally I get
PS C:\Packages\TestPackageFilder> msiexec.exe /i testpackage.msi
I get that PowerShell needs an absolute or relative path, but my external commands, especially msiexec.exe which is my bread and butter does not.
I tried & at the beginning of the command like:
PS C:\Packages\TestPackageFilder> & msiexec.exe /i .\testpackage.msi
but that makes no difference - tab complete still appends .\
Going nuts.. Want to learn PowerShell and abandon CMD.exe but as you can imagine, since I run the above command probably 100 times a day I'm losing time and productivity.
Any help is appreciated! Thanks!