我尝试在Powershell中使用带有Get-ChildItem的UNC长路径,如
Get-ChildItem -Path "\\?\c:\blabla"Powershell说路径上有非法字符。同样的路径也适用于Resolve-Path。如何在gci中使用“\?”语法
发布于 2017-11-01 01:08:02
好消息!PowerShell v6.0.0-beta.3及更高版本现在默认支持UNC路径;它会自动将UNC字符串添加到路径>260个字符:
https://github.com/PowerShell/PowerShell/releases/tag/v6.0.0-beta.3 https://github.com/PowerShell/PowerShell/pull/3960 https://github.com/PowerShell/PowerShell/pull/3960/files/3e7e28d49f306ab4874e32cf10eabb43559dae26#diff-52b1a915619c71b288b3f92f944924c4
修正PowerShell核心,允许使用超过260个字符的长路径。(#3960) ..。 当调用Windows本机API以确定是否存在项时,请确保路径前面有\?\ \,以允许路径>260个字符。
您只需下载该版本或更高版本(通过。PowerShell标签)。我刚刚下载了v6.0.0-beta.9 for Windows x64到我的Windows 10机器上,并对其进行了测试,创建了一个大约460字符的路径!
发布于 2013-11-04 18:55:17
我似乎找不到适用于?的咒语。然而,以下工作是可行的:
gci '\\localhost\C$\'
gci ('\\{0}\C$\' -f $ENV:COMPUTERNAME)更新:参考资料:UNC路径不适用于.NET?
\\?\部分是特定于windows的,本质上与powershell中的--%执行相同的操作,即“这之后的一切都是文字字符串”。
示例:
$LongUncPath = '\\?\C:\'
Get-ChildItem -Path:$LongUncPath.TrimStart('\\?\')发布于 2015-05-13 19:10:52
我发现路的尽头有一些不可打印的字符。我使用trim()删除了“路径中的非法字符”。
$path.trim()
https://stackoverflow.com/questions/19773157
复制相似问题