derwowusste
Goto Top

Powershell Syntaxfrage zu sls

Moin Kollegen.

Eine sicherlich recht einfache Frage diesmal:
Wenn ich
alias |findstr Variable
Nutze, bekomme ich, was ich will:
Alias clv -> Clear-Variable
Alias gv -> Get-Variable
Alias nv -> New-Variable
Alias rv -> Remove-Variable
Alias set -> Set-Variable
Alias sv -> Set-Variable

Statt findstr würde ich lieber sls nutzen, aber
alias |sls Variable
Liefert keine Treffer.

Es ist nicht sonderlich schwer, zu verstehen, was da ungefähr verkehrt läuft, da diese "Eigenheit" natürlich auch im Netz zu finden ist, z.B. http://stackoverflow.com/questions/18558502/why-sls-aka-select-string-d ...
Aber was ich genau schreiben müsste, weiß ich immer noch nicht. Ihr vielleicht?

Content-Key: 251453

Url: https://administrator.de/contentid/251453

Printed on: April 25, 2024 at 07:04 o'clock

Member: colinardo
Solution colinardo Oct 09, 2014 updated at 14:25:15 (UTC)
Goto Top
Hi DWW,
machs doch so:
Get-Alias -Definition "*Variable"
oder
alias | ?{$_.Definition -like '*Variable'} | select -Expand DisplayName
oder
(alias).DisplayName | sls 'Variable'
sls selektiert nur auf Strings nicht auf Objekten, welche von alias zurückgegeben werden. Die Member kannst du dir hiermit anzeigen lassen: alias | gm

Grüße Uwe
Member: emeriks
Solution emeriks Oct 09, 2014 updated at 14:08:35 (UTC)
Goto Top
Hi,
"alias Test -> Get-Variable" | sls Variable  
funktioniert aber und liefert die ganze Zeile. Ich denke, das hängt mit dem Pipen zusammen. Nicht jedes Kommando kann per Pipe verkettet werden bzw. funktioniert dann wie gewünscht.

Folgendes geht jedenfalls:
alias | foreach($_){$_.DisplayName | sls Variable}

E.
Member: AndreasHoster
Solution AndreasHoster Oct 09, 2014 updated at 14:08:33 (UTC)
Goto Top
alias | Out-String -stream | sls Variable
Das Problem ist, daß Dir zwar z.B. Alias clv -> Clear-Variable angezeigt wird, das aber nur die Darstellung am Bildschirm ist, in der Pipeline aber Objekte übergeben werden.
Powershell wandelt das Objekt für sls in einen String um, aber nicht wie am Bildschirm, sondern nur das Attribut Name, nicht den Rest.
Mach doch spasseshalber mal:
alias | sls a
Dann siehst Du, warum Variable einfach so nicht tut.
Member: DerWoWusste
DerWoWusste Oct 09, 2014 at 14:08:29 (UTC)
Goto Top
Ok, back to school...

Das werde ich noch mal ausführlicher verinnerlichen müssen.
Hätte gehofft, dass es für den stumpfen output von alias einen ebenso kurze Syntax in PS gibt, wie die mit findstr.
(alias).DisplayName | sls 'Variable'
ist natürlich auch noch recht kurz.

Danke Euch 3en.