Powershell 函数字符串输出作为基于文件的函数的输入

Powershell Function String output as input to File based functions

我有 Powershell v5 运行 Windows 10 64Bit OS.

而且我还有一个很好的技巧,通过使用 $Path.Replace('[','[' ].Replace(']',']'),凭直觉我想,为什么不把它变成像下面一样的函数呢:

Function GetEscapedPath($Path) {
    Return $Path.Replace('[','`[' ).Replace(']','`]')
}

现在我想使用此函数 return 值作为 Remove-Item 函数或任何基于文件完整路径的函数的输入,但这不起作用:

Remove-Item GetEscapedPath $File.Fullname -WhatIf

$FileGet-ChildItem 上循环的变量,选择了 Fullname,但上面的行仍然没有打印任何内容。

我怎样才能达到我想要的?

使用(...)grouping operator 将命令或表达式的输出作为参数传递给另一个命令:

# Positionally binds to the -Path parameter, which interprets its argument
# as a wildcard pattern.
Remove-Item (GetEscapedPath $File.Fullname) -WhatIf

但是,在您的特定情况下,函数 不需要 转义 file-system路径以便按字面意义(逐字):只需使用各种 file-related cmdlet 的 -LiteralPath 参数 即可:

Remove-Item -LiteralPath $file.FullName -WhatIf

有关详细信息,请参阅