2015-10-31 26 views
8

Sono nuovo in PowerShell. Ho cercato online questa risposta, ma senza risultato. Forse sto semplicemente formulando la domanda in modo errato.PowerShell: concatena le stringhe con le variabili dopo il cmdlet

Spesso mi trovo nella situazione in cui devo concatenare una stringa con una variabile dopo un cmdlet. Ad esempio,

New-Item $archive_path + "logfile.txt" -type file 

Se provo a eseguire questo, PowerShell getta il seguente errore:

New-Item: Un parametro posizionale non può essere trovato che accetta argomento '+'.

Non riesco a concatenare correttamente la stringa? Mi piacerebbe non dover dichiarare un'altra variabile prima di ogni cmdlet in cui eseguo questa operazione (ad esempio, $logfile = $archive_path + "logfile.txt", quindi fare New-Item $logfile -type file). Inoltre, non sarà sempre concatenare un percorso di file.

risposta

14

Si ottiene questo errore perché il parser di PowerShell vede $archive_path, + e "logfile.txt" come tre argomenti parametro separati, anziché come una stringa.

racchiudere la concatenazione di stringhe in parantheses () di cambiare ordine di valutazione:

New-Item ($archive_path + "logfile.txt") -Type file 

o racchiudere la variabile in una sottoespressione:

New-Item "$($archive_path)logfile.txt" -Type file 

Si può leggere su modalità argomento analisi con Get-Help about_Parsing

Problemi correlati