nummerierte Liste von Computernamen ohne foreach in Powershell erstellen

615
js2010

Ich frage mich nur, ob es eine Möglichkeit gibt, eine nummerierte Liste von Computern wie diese zu generieren, ohne foreach zu verwenden, so dass Don Jones mich möchte:

1..3 | foreach { "COMPUTER0$_" } 

Die Ausgabe sieht folgendermaßen aus:

 COMPUTER01 COMPUTER02 COMPUTER03 

Ich bin überrascht, dass Sie keinen Skriptparameter verwenden können:

1..3 | write-output { write-output "COMPUTER0$_" } 

BEARBEITEN:

Tatsächlich können Sie einen Skriptblock mit jedem Parameter verwenden, der die Pipe liest. Foreach ist für mich eine Art Platzhalter für einen Skriptblock:

1..3 | write-output -inputobject { "COMPUTER0$_" } 

Und hier ist eine Möglichkeit, Nullen aufzufüllen:

1..24 | write-output -inputobject { 'computer' -f $_ } 
0
Warum sollten Sie foreach nicht verwenden? Ist das Hausaufgaben? LPChip vor 6 Jahren 0
In Powershell können Sie häufig eine Liste von Objekten einleiten oder eine Liste als Parameter angeben. Und Don Jones stirbt ein bisschen drinnen: http://windowsitpro.com/blog/foreach-makes-me-die-little-inside js2010 vor 6 Jahren 0
Ich bin überrascht, dass Sie die Fehlermeldung oder "Get-Help Write-Output" nicht gelesen haben. Wenn Sie möchten, verwenden Sie einfach "1..3 -replace" ^ "," COMPUTER0 "" LotPings vor 6 Jahren 2
Das ist gut. Ich wusste gar nicht, dass der Ersetzungsoperator an einer Liste arbeiten konnte. js2010 vor 6 Jahren 0
Ich habe dieses für das Piping an new-adcomputer unter einer 'name'-Eigenschaft herausgefunden: `1..3 | select @ } ` js2010 vor 6 Jahren 0

0 Antworten auf die Frage