Ответ 1
попробуйте эту команду в script:
Split-Path -parent $MyInvocation.MyCommand.Definition
Никто, кажется, не задает этот простой вопрос, поэтому я буду.
Мой файл PowerShell script находится: C:/this-folder/that-folder/another-folder/powershell-file.ps1
Как получить возвращаемую переменную: C:/this-folder/that-folder/another-folder/
попробуйте эту команду в script:
Split-Path -parent $MyInvocation.MyCommand.Definition
В PowerShell 3.0 вы можете получить его с новой переменной $PSScriptRoot
, а с помощью $PSCommandPath
вы можете получить полный путь script.
Там также отличный пост на холме MVP Keith, который вы можете проверить:
http://rkeithhill.wordpress.com/2010/09/19/determining-scriptdir-safely/
Я предполагаю, что вы хотите знать, в какой папке работает ваш script, когда она запускается.
Это должно сделать это:
Split-Path $MyInvocation.MyCommand.Path
Вы можете использовать стандартный метод .Net
$dirName=[System.IO.Path]::GetDirectoryName("c:\temp\abc\myproj1\newdata.txt")
От http://techibee.com/powershell/powershell-get-parent-directory-name-from-file-or-directory-path/2595