If I want to run a powershell script from the same folder where it exists what should I use ?? In batch script i generallly do the following method 

 

if not exist C:\install\Logs\ md C:\install\Logs\
if %PROCESSOR_ARCHITECTURE%==x86 (
"%~dp0setup.exe" /L*v "c:\install\logs\setup.log"
) else (
"%~dp0setup.exe" /L*v "c:\install\logs\setup.log"
)

 

Answer Summary:
Cancel
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Community Chosen Answer

2

This should do the trick:

$executingScriptDirectory = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent
Answered 07/19/2012 by: Ifan
Second Degree Green Belt

Please log in to comment

Answers

1

$0 = $myInvocation.MyCommand.Definition

from there, we can get

$dp0 = [System.IO.Path]::GetDirectoryName($0)

Answered 07/19/2012 by: jagadeish
Red Belt

Please log in to comment
0

I have created a powershell script and you can use its function Get-ScriptDirectory to get the current folder and then use that folder as a variable and append it before setup.exe

You can get the script here.

http://msiworld.blogspot.com.au/2012/01/my-first-powershell-script.html

You can join my blog/follow for more interesting stuff to come.

Answered 07/18/2012 by: piyushnasa
Red Belt

  • Hey, you should really try to get some exitcode handling in that script. Also, you can use the code:
    $install = start-process -filepath "msiexec.exe" -argumentlist '/i "foo bar 1.0.msi" /qb!' -wait -passthru

    instead of [Diagnostics.Process] to launch your setup. Easier to read and use unless you are a .NET Developer.

    Just type $install | get-member and you'll see ;)
Please log in to comment
Answer this question or Comment on this question for clarity