cmdlet 的 LiteralPath 选项

m_p*_*wer 5 powershell cmdlet powershell-2.0

在我在教程和书籍中看到的大多数示例中,默认情况下几乎从不使用 -LiteralPath 选项(似乎首选 -Path 选项)。因为 -LiteralPath 选项允许使用保留字符(例如 []),我不明白为什么不经常使用它(如果不是,则一直使用)。是因为更喜欢手动转义保留字符,因为它具有很高的性能成本,因为不是所有的cmdlet都支持这个选项还是因为别的什么?

bri*_*ist 5

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

望着Get-Item小命令,例如:

-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
Run Code Online (Sandbox Code Playgroud)

用管子串起你-Path。您的对象必须具有LiteralPath(或PSPath)属性Get-Item才能使用它。如果您的对象同时具有,-Path则使用。

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

  • “为什么 -Path 的行为首先不像 -LiteralPath?” - 从历史上看。在 PowerShell 的开头只有 `-Path`,就像现在一样。`-LiteralPath` 是后来引入的。出于兼容性考虑,它没有成为默认值,`-Path` 也没有改变。 (6认同)