Como você pega um comando como o seguinte no PowerShell e o divide em várias linhas?
&"C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" -verb:sync -source:contentPath="c:\workspace\xxx\master\Build\_PublishedWebsites\xxx.Web" -dest:contentPath="c:\websites\xxx\wwwroot\,computerName=192.168.1.1,username=administrator,password=xxx"
powershell
asgerhallas
fonte
fonte
Respostas:
Trailing backtick character, ou seja,
O espaço em branco é importante. O formato exigido é Space`Enter.
fonte
Outro método para a passagem mais limpa de argumentos seria o splatting .
Defina seus parâmetros e valores como uma hashtable como esta:
E, em seguida, chame seu commandlet assim:
Microsoft Docs: Sobre splatting
TechNet Magazine 2011: Windows PowerShell: Splatting
Parece que funciona com o Powershell 2.0 e superior
fonte
$params.add('name','Bob Newhart')
ramblingcookiemonster.wordpress.com/2014/12/01/…Ah, e se você tem uma string muito longa que deseja quebrar, digamos, em HTML, pode fazê-lo colocando um
@
em cada lado da parte externa"
- assim:Você recebe exatamente isso:
E se você estiver usando o Notepad ++ , ele será destacado corretamente como um bloco de string.
Agora, se você também deseja que essa string contenha aspas duplas, basta adicioná-las assim:
Você obteria exatamente isso:
No entanto, se você usar aspas duplas nessa sequência @, o Notepad ++ não perceberá e alterará a coloração da sintaxe como se não fosse citada ou citada, dependendo do caso.
E o melhor é que: em qualquer lugar que você insere uma variável $, ela é interpretada! (Se você precisar do cifrão no texto, escape-o com uma marca de seleção como esta: `` $ not-a-variable`.)
AVISO PRÉVIO! Se você não colocar a final
"@
no início da linha , ela falhará. Levei uma hora para descobrir que eu não poderia recuar isso no meu código!Aqui está o MSDN sobre o assunto: Usando o Windows PowerShell "Here-Strings"
fonte
Você pode usar o operador backtick:
Ainda é um pouco longo para o meu gosto, então eu usaria algumas variáveis bem nomeadas:
fonte
Se você tem uma função:
Se você possui um cmdlet :
Se você tem um aplicativo:
Ou
fonte
No PowerShell 5 e no PowerShell 5 ISE, também é possível usar apenas Shift+ Enterpara edição de várias
`
linhas (em vez de backticks padrão no final de cada linha):fonte
Método Splat com cálculos
Se você escolher o método de splat, tome cuidado com os cálculos feitos com outros parâmetros. Na prática, às vezes tenho que definir variáveis primeiro e depois criar a tabela de hash. Além disso, o formato não requer aspas simples em torno do valor da chave ou do ponto e vírgula (conforme mencionado acima).
Nota: A matriz de arquivos contém informações que afetarão como a planilha é preenchida.
fonte
Outra maneira de quebrar uma string em várias linhas é colocar uma expressão vazia no meio da string e quebrá-la em linhas:
sequência de amostra:
"stackoverflow stackoverflow stackoverflow stackoverflow stackoverflow"
quebrado através das linhas:
fonte