У меня есть собственный командлет, который можно назвать так:Powershell Cmdlet: Определить фактический путь_к_файлу файла в локальном каталоге
Get-Info ".\somefile.txt"
Мой commandlet код выглядит примерно так:
[Parameter(Mandatory = true, Position = 0)]
public string FilePath { get; set; }
protected override void ProcessRecord()
{
using (var stream = File.Open(FilePath))
{
// Do work
}
}
Однако когда Я бегу команду, я получаю эту ошибку:
Could not find file 'C:\Users\Philip\somefile.txt'
Я не выполняю этот командлет от C:\Users\Philip
. По какой-то причине мой командлет не обнаруживает рабочий каталог, поэтому локальные файлы, подобные этому, не работают. В C#, каков рекомендуемый способ обнаружения правильного пути к файлу, когда предоставляется локальный путь «. \»?
Вы пробовали: [Environment.CurrentDirectory] (http://msdn.microsoft.com/en-us/library/system.environment.currentdirectory.aspx) –
Да у меня есть, результат «C : \ Users \ Philip \ ' – Phil
Это, по-видимому, по дизайну: http://www.windowsitpro.com/article/windows-powershell/why-the-powershell-working-directory-and-the-powershell-location-aren- трет-один-в-то же самое. 'Внутри PowerShell, ваше местоположение - C: \ tmp. Тем не менее, ваш рабочий каталог по-прежнему будет C: \ Users \ JaneUser' – mellamokb