Substitua uma variável por seu valor dentro do prompt de comando do powershell

0

No Windows PowerShell, existe uma maneira de "avaliar" uma variável para que eu tenha seu valor colado no prompt de comando? O cenário de uso que gostaria de realizar é o seguinte:

digamos que eu tenha uma variável $path que contenha "C: / Users / Me / Some / Long / Path". Eu gostaria de escrever cd $path no prompt de comando e então substituir $path pelo seu valor, para que eu tenha cd C:/Users/Me/Some/Long/Path no meu prompt de comando e possa editar manualmente o caminho longo e, eventualmente, pressionar enter para alterar o diretório. Isso ou um comportamento semelhante está disponível? Seria possível apenas com a variável, sem o cd no começo?

    
por mz8i 12.01.2014 / 14:15

1 resposta

0

Existe uma maneira - é um pouco hacky e nem sempre funciona. Tomando seu exemplo de cd, se você digitar:

cd $path\<TAB>

O PowerShell expandirá $ path para seu valor, mas somente se houver subdiretórios. Se $ path fosse um diretório de folhas, o PowerShell não substituiria o texto.

Agora, para a parte chata - o PowerShell fará mais do que expandir sua variável, ela também incluirá a primeira conclusão possível. Se não é isso que você queria, você terá que excluir esse texto. Se você conhece parte do caminho que deseja, é melhor adicioná-lo, por exemplo:

cd $path\*part<TAB>

Note que incluí um curinga principal - que funciona muito bem. Um caractere curinga final não é necessário, e o PowerShell pressupõe que você deseja um curinga à direita quando bater.

Este truque também pode funcionar com outros comandos, por ex. Se você quiser completar arquivos, não apenas diretórios, tente:

cat $path\<TAB>

Esse truque funcionará melhor com os caminhos, embora possa funcionar em outras circunstâncias limitadas.

Isso definitivamente não funcionará sem um comando primeiro - e, para ser honesto, não importa muito o nome do comando.

    
por 14.01.2014 / 08:19