Ich habe das @ -Symbol gesehen, das in PowerShell zum Initialisieren von Arrays verwendet wird. Was genau bedeutet das @ -Symbol und wo kann ich mehr darüber lesen?
syntax
powershell
GrahamMc
quelle
quelle
In PowerShell V2 ist @ auch der Splat-Operator .
quelle
Während die obigen Antworten den größten Teil der Antwort liefern , ist es nützlich - auch so spät auf die Frage -, die vollständige Antwort zu geben, nämlich:
Array-Unterausdruck (siehe about_arrays )
Erzwingt, dass der Wert ein Array ist, selbst wenn ein Singleton oder eine Null, z
$a = @(ps | where name -like 'foo')
Hash-Initialisierer (siehe about_hash_tables )
Initialisiert eine Hash-Tabelle mit Schlüssel-Wert-Paaren, z
$HashArguments = @{ Path = "test.txt"; Destination = "test2.txt"; WhatIf = $true }
Splatting (siehe about_splatting )
Lassen Sie uns ein Cmdlet mit Parametern aus einem Array oder einer Hash-Tabelle aufrufen, anstatt den üblicheren, einzeln aufgezählten Parametern, z. B. mithilfe der obigen Hash-Tabelle.
Copy-Item @HashArguments
Hier Zeichenfolgen (siehe about_quoting_rules )
Lassen Sie uns Zeichenfolgen mit einfach eingebetteten Anführungszeichen erstellen, die normalerweise für mehrzeilige Zeichenfolgen verwendet werden, z.
Da diese Art von Frage ( was bedeutet "x" -Notation in PowerShell? ) Hier in StackOverflow sowie in vielen Leserkommentaren so häufig vorkommt, habe ich ein Lexikon mit PowerShell-Interpunktion zusammengestellt, das gerade auf Simple-Talk.com veröffentlicht wurde. Lesen Sie alles über @ sowie% und # und $ _ und? und mehr unter The Complete Guide to PowerShell Punctuation . Dem Artikel ist dieses Wallchart beigefügt, das Ihnen alles auf einem einzigen Blatt bietet:
quelle
Sie können auch die Ausgabe eines Cmdlets (oder einer Pipeline) einschließen,
@()
um sicherzustellen, dass Sie ein Array und kein einzelnes Element erhalten.Beispielsweise gibt dir normalerweise eine Liste zurück, aber abhängig von den Optionen wird möglicherweise ein einzelnes Objekt zurückgegeben. Wenn Sie vorhaben, die Ergebnisse mit einem foreach-Objekt zu durchlaufen, müssen Sie sicherstellen, dass Sie eine Liste zurückerhalten. Hier ist ein erfundenes Beispiel:
Eine weitere Sache ... ein leeres Array (wie das Initialisieren einer Variablen) wird bezeichnet
@()
.quelle
Der Splatting-Operator
Um ein Array zu erstellen, erstellen wir eine Variable und weisen das Array zu. Arrays sind mit dem Symbol "@" gekennzeichnet. Nehmen wir die obige Diskussion und verwenden Sie ein Array, um eine Verbindung zu mehreren Remotecomputern herzustellen:
Sie werden für Arrays und Hashes verwendet.
PowerShell-Lernprogramm 7: Sammeln, Abrufen und Ändern von Daten
Array-Literale in PowerShell
quelle