首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当路径\文件名大于260个字符时,在PowerShell中获取/设置文件属性

当路径\文件名大于260个字符时,在PowerShell中获取/设置文件属性
EN

Stack Overflow用户
提问于 2013-12-17 18:02:46
回答 2查看 861关注 0票数 5

我正在寻找一种方法,以获取和设置文件属性(隐藏和只读)在PowerShell中的合并路径和文件名大于260个字符的文件。我知道.NET类不支持更长的文件路径;我已经尝试过了。阿特里布也没用。我得到错误“参数格式不正确-”。同样地,迪尔也不起作用。

我正在使用机器复制来获取文件名。Robocopy没有长路径的问题。但是,我不能使用Robocopy获取/设置属性,因为我只是在使用Robocopy的/L列表模式。

有人能为PowerShell找到解决办法吗?

更新

subst不支持超长路径.不过,它似乎确实适用于部分路径。

mklink需要本地卷。

net use不支持超长路径.不过,它似乎确实适用于部分路径。

New-PSDrive不支持超长路径,甚至不支持部分路径.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-17 18:49:19

我想使用subst命令将路径映射为一个驱动器字母是值得一试的。它是建立在过去DOS的基础上,并且仍然像这样在Winndow上工作,

代码语言:javascript
复制
subst k: c:\some\really\complex\path\with\too\many\subdirs\and\suff\...

如果subst无法工作,请尝试在文件附近共享一个目录,并通过UNC路径访问它。

票数 1
EN

Stack Overflow用户

发布于 2013-12-18 20:49:07

在vonPryz的回答和使用部分路径的想法的基础上,下面的工作虽然很慢,但需要进行错误抑制:

代码语言:javascript
复制
subst m: 'Insert\a\complete\path\close\to\character\limit'
sleep 1
Push-Location 'm:\rest\of\path\to\the\file' -ErrorAction SilentlyContinue
Get-ChildItem | %{
attrib $_
}
subst m: /d
sleep 1

这个答案还使用SUBST来接近我们想要到达的位置;然后,Push-Location将长文件名“父目录”设置为“当前工作目录”请看这里。Push-Location会抱怨它,但是它仍然有效,因为Get-ChildItem和ATTRIB似乎可以处理这个“当前工作目录”,而不是解析整个路径,因此ATTRIB可以工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20641481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档