Estou desenvolvendo um PowerShell 3.0 cmdlet
usando C # /. Net 4.0 no Visual Studio 2010. Eu gostaria de obter o diretório atual no PowerShell onde o usuário executa o cmdlet
. Mas Directory.GetCurrentDirectory () não funciona como esperado. No código abaixo, o resultado é C: UsersAdministrator.
Pergunta: o que cmdlet
código é usado para obter o diretório atual do PowerShell?
[System.Management.Automation.Cmdlet(System.Management.Automation.VerbsCommon.Get, "StatusBar")]
public class GetStatusBarCommand : System.Management.Automation.PSCmdlet
{
/// <summary>
/// Provides a record-by-record processing functionality for the cmdlet.
/// </summary>
protected override void ProcessRecord()
{
this.WriteObject(Directory.GetCurrentDirectory());
return;
}
}
Respostas:
21 para resposta № 1Um processo do PowerShell pode ter várias RunspacesPortanto, um único diretório global não funciona para o PowerShell. Além disso, no PowerShell, o diretório atual pode estar no Registro e não no sistema de arquivos. No entanto, você pode acessar o diretório do sistema de arquivos com a API do PowerShell da seguinte forma:
this.SessionState.Path.CurrentFileSystemLocation