cmdlet的LiteralPath选项

时间:2015-02-19 16:15:52

标签: powershell powershell-v2.0 cmdlet

在我在教程和书籍中看到的大多数示例中,默认情况下几乎从不使用-LiteralPath选项(-Path选项似乎是首选)。因为-LiteralPath选项允许使用保留字符(例如[]),所以我不明白为什么它不经常使用(如果没有,一直使用)。是因为它首选手动转义保留字符,因为它具有较高的性能成本,因为并非所有cmdlet都支持此选项或因为其他内容?

1 个答案:

答案 0 :(得分:3)

要考虑的一件事是-Path最有可能是通过管道传入字符串时使用的参数。

例如,查看Get-Item cmdlet:

-LiteralPath <string[]>

Required?                    true
Position?                    Named
Accept pipeline input?       true (ByPropertyName)
Parameter set name           LiteralPath
Aliases                      PSPath
Dynamic?                     false

-Path <string[]>

Required?                    true
Position?                    0
Accept pipeline input?       true (ByValue, ByPropertyName)
Parameter set name           Path
Aliases                      None
Dynamic?                     false

管道输入一个字符串可以获得-Path。您的对象必须具有LiteralPath(或PSPathGet-Item属性才能使用它。如果您的对象同时使用,则使用-Path

我想这并不一定能回答这个问题;它有点循环说'#34; -Path被更频繁地使用,因为它更受欢迎&#34;。一个更好的问题可能是,&#34;为什么-Path首先表现得像-LiteralPath?&#34;