How can I get the file system location of a PowerS

2019-01-08 12:24发布

I have a PowerShell script located at D:\temp.

When I run this script, I want the current location of the file to be listed. How do I do this?

For example, this code would accomplish it in a DOS batch file; I am trying to convert this to a PowerShell script...

FOR /f "usebackq tokens=*" %%a IN ('%0') DO SET this_cmds_dir=%%~dpa
CD /d "%this_cmds_dir%"

2条回答
乱世女痞
2楼-- · 2019-01-08 12:38

Roman Kuzmin answered the question imho. I'll just add that if you import a module (via Import-Module), you can access $PsScriptRoot automatic variable inside the module -- that will tell you where the module is located.

查看更多
Juvenile、少年°
3楼-- · 2019-01-08 12:41

PowerShell 3+

The path of a running scripts is:

$PSCommandPath

Its directory is:

$PSScriptRoot

PowerShell 2

The path of a running scripts is:

$MyInvocation.MyCommand.Path

Its directory is:

$PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent
查看更多
登录 后发表回答