Wie man einen string statt einem array in der PowerShell?
Ich versuche, Folgendes zu tun:
$files = Get-ChildItem c:\temp | Select-Object Name
foreach ($i in $files) {
Write-Host "Filename is $i"
}
Beispiel-Ergebnis:
Filename is @{Name=oracle10204.rsp}
Filename is @{Name=powershell.txt}
Wie bekomme ich nur die folgenden?
Filename is oracle10204.rsp
Filename is powershell.txt
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist die Antwort zu bekommen, nur die Namen aus deinem Beispiel. Surround die $ich mit $( ) und Verweis die .Name-Eigenschaft. Die $() bewirkt, um den Ausdruck auszuwerten.
Mit dem -Namen-Schalter können Sie den Objekt-Namen nur:
Wenn Sie sind hartnäckig, Ihren ersten Versuch funktioniert, versuchen Sie ersetzen
mit
Ich bin nicht sicher, warum Sie mit
Select-Object
hier, aber das würde ich nur tun:Dieser leitet die Ausgabe von "Get-ChildItem", um eine " Foreach-Object (Abkürzung
%
), die ausgeführt wird, den Befehl für jedes Objekt in der pipeline.$_
ist die universal-Pipe-Objekt-variable.Select-Object
- und Ausgabe nur die name-Eigenschaft jedes file-Objekt.Erhalten Sie dieses Objekt in einen string mit der
Get-ChildItem -Name
parameter:Dies gibt Ihnen eine:
Lesen Sie über es in Get-ChildItem.