W oknie PowerShell:Dlaczego PowerShell dzieli argumenty zawierające łączniki i kropki?
PS C:\> echo -abc.def.ghi
-abc
.def.ghi
Z jakiegoś powodu, połączenie z myślnikiem i okresu przyczyny PowerShell podzielić argumentu na dwie linie.
To nie wystąpić bez myślnika:
PS C:\> echo abc.def.ghi
abc.def.ghi
Nie ma ona wystąpić, gdy nie istnieją żadne okresy:
PS C:\> echo -abcdefghi
-abcdefghi
Poprzez eksperymentowanie, Znalazłem mogę uciec z zachowania grawis:
PS C:\> echo `-abc.def.ghi
-abc.def.ghi
Ale dlaczego łania to się dzieje? Jaka fundamentalna część składni PowerShell nie rozumiem?
Hmm, ciekawe. Zwracam uwagę na "echo" -abc.def "' działa zgodnie z oczekiwaniami, więc może to być podpowiedź –
Zakładając, że używasz PowerShell V3 +, możesz użyć tego '{echo -abc.def.ghi} .Ast.EndBlock.Statements [0] .PipelineElements [0] .CommandElements ', aby zobaczyć, jak interpretuje to parser: – PetSerAl