使用Powershell,我想将一堆绝对路径转换为相对路径:
cmd /c dir /s /b /a-d | resolve-path -relative | sort-object
但是,目录中有许多有趣的字符使Resolve-Path误以为它们是通配符模式。
如何通过管道将它们传递到解析路径的-LiteralPath
?
我读到它应该由ByPropertyName管道完成,并且该值应该放在输入对象的“ LiteralPath”属性中。
但是我不知道如何。网络上的文章使我感到困惑。
请帮助,非常感谢。
答案 0 :(得分:3)
指定管道输入值应绑定到LiteralPath
,如下所示:
cmd /c dir /s /b /a-d|Resolve-Path -LiteralPath {$_} -Relative
尽管,如果您只想遍历目录树,收集所有文件并解析它们的相对路径,请改用Get-ChildItem
-内置cmdlet上的LiteralPath
参数始终是别名{{ 1}},恰好是提供程序添加到所有驱动器项的属性的名称,从而使管道绑定自动工作:
PSPath