Obtendo o código do VS para funcionar mais como o PowerShell ISE

2

Estou gastando mais tempo trabalhando no PowerShell recentemente e descobri que realmente gosto da forma e função de Código do Visual Studio com a Extensão do PowerShell para este trabalho sobre o PowerShell ISE nativo, exceto por um pequeno bit:

No ISE eu posso chamar e explorar variáveis, matrizes e hashes e outras entidades no código no qual estou trabalhando atualmente na linha de comando do ISE, mas no VS Code, usando ou o console PowerShell Integrated ou o console powershell.exe, não obtenho essa capacidade.

Por exemplo:

No ISE eu construí uma tabela de hash e estou aprendendo a sintaxe para referenciá-la tentando várias coisas no console, e "executando" o código, mesmo que seja apenas declarando e construindo o hashtable, eu posso em seguida, faça referência a isso e explore-o no console:

QuandotentofazerissonoVSCode(mesmocódigo,executeoscriptemqualquerumdosconsoles),receboesseerrobasicamenteobservandoqueamatrizqueestoutentandoexplorarnãoexiste:

ComopossoobterumafunçãosemelhantenoVSCode?Ouissoépossível?

TalvezamaiorpartedomeuproblemasejaqueestoutendoproblemasparadescreverissodeumamaneiraqueoGoogle"entende" e, por isso, não consegui encontrar nenhuma pergunta semelhante on-line.

    
por music2myear 12.06.2017 / 21:15

2 respostas

1

A questão é que você não está pontuando o script, você está apenas passando o caminho do script (por seu comentário no post original)

O que você está fazendo: .\script.ps1 (apenas indicando um caminho, nada chamando o script para executá-lo)

O que você deve fazer: . .\script.ps1 (fornecimento de ponto para carregar o conteúdo do script na sessão).

Aqui está eu replicando seu problema:

Aquiestáfuncionando:

  1. Primeiralinhasoueulimpandoavariáveldasessão
  2. Segundalinhaéaconfirmaçãodequeavariávelestáreplicandoseuproblema(esperado,jáqueavariávelnãoexistenaquelemomento)
  3. Aterceiralinhaéopontodeorigemdoscriptquecontémoblocoabaixo(igualàsuacapturadetela)parareplicarcomovocêestáseaproximandodele
  4. ExecutandoexatamenteamesmapesquisahashtablequeresultanamesmasaídaquevocêestárecebendodoISE

BlocodescriptemtestHash.ps1:

$hash_agencyOffices=@{Agency1=@{Agency1=@("Aberdeen"
            "Sacramento"
            "Dallas"
            "Long Beach"
            "Tampa"
            "Seattle"
            "Vancouver"
        )
    }
    Agency2 = @{
        SubAgency1 = @(
            "Aberdeen"
            "Sacramento"
            "Dallas"
            "Long Beach"
            "Tampa"
            "South Bend"
            "Stevenson"
            "Tumwater"
            "Vancouver"
        )
        SubAgency2 = @(
            "Dallas"
            "Seattle"
            "Vancouver"
        )
    }
}
    
por 13.06.2017 / 04:10
2

O VS Code é de código aberto. O que você está tentando fazer parece não ser compatível agora , portanto, se você quiser um recurso como esse, os patches serão sempre bem-vindos. :)

    
por 12.06.2017 / 21:21