268 votes

Comment répartir les longues commandes sur plusieurs lignes dans PowerShell

Comment prendre une commande comme celle-ci dans PowerShell et la répartir sur plusieurs lignes ?

&"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"

0 votes

0 votes

4voto

Bad Points 2339

Dans PowerShell 5 et PowerShell 5 ISE, il est également possible d'utiliser uniquement l'option Shift + Enter pour l'édition multiligne (au lieu des backticks standard) ` à la fin de chaque ligne) :

PS> &"C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" # Shift+Enter
>>> -verb:sync # Shift+Enter
>>> -source:contentPath="c:\workspace\xxx\master\Build\_PublishedWebsites\xxx.Web" # Shift+Enter
>>> -dest:contentPath="c:\websites\xxx\wwwroot,computerName=192.168.1.1,username=administrator,password=xxx"

3voto

Kirill Yunussov Points 171

Une autre façon d'interrompre une chaîne de caractères sur plusieurs lignes est de placer une expression vide au milieu de la chaîne, et de l'interrompre sur plusieurs lignes :

la chaîne d'échantillons :

"stackoverflow stackoverflow stackoverflow stackoverflow stackoverflow"

brisé à travers les lignes :

"stackoverflow stackoverflow $(
)stackoverflow stack$(
)overflow stackoverflow"

9 votes

Cela fonctionne techniquement, mais c'est assez horrible...

1voto

Mark Points 143

Méthode Splat avec calculs

Si vous choisissez la méthode splat, méfiez-vous des calculs qui sont effectués en utilisant d'autres paramètres. Dans la pratique, il m'arrive de devoir d'abord définir des variables puis créer la table de hachage. De plus, le format ne nécessite pas de guillemets simples autour de la valeur de la clé ou du point-virgule (comme mentionné ci-dessus).

Example of a call to a function that creates an Excel spreadsheet

$title = "Cut-off File Processing on $start_date_long_str"
$title_row = 1
$header_row = 2
$data_row_start = 3
$data_row_end = $($data_row_start + $($file_info_array.Count) - 1)

# use parameter hash table to make code more readable
$params = @{
    title = $title
    title_row = $title_row
    header_row = $header_row
    data_row_start = $data_row_start
    data_row_end = $data_row_end
}
$xl_wksht = Create-Excel-Spreadsheet @params

Remarque : Le tableau de fichiers contient des informations qui affecteront la façon dont la feuille de calcul est remplie.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X