Powershell > 找不到路径,但它确实存在
Posted
技术标签:
【中文标题】Powershell > 找不到路径,但它确实存在【英文标题】:Powershell > Path not found but it really exists 【发布时间】:2013-05-20 04:11:48 【问题描述】:我有以下 powershell 将文件从服务器移动到本地。我一直找不到路径。路径长约 280 个字符 + 文件名约 30 到 70 个字符。怎么办?
$destDir = "C:\test\Files\"
$csv = import-csv 'C:\test\FilesWithPath.csv'
#For each line in the CSV
$csv | %
robocopy $_.SourceFilePath $destDir $_.SourceFileName
【问题讨论】:
你超过了256个字符的最大路径限制,有什么办法可以移动单个文件或简化路径? 嗯,想法是将这些文件(从长服务器路径)移动到本地,以便我可以使用另一个脚本将这些文件从本地驱动器移动到 SharePoint。 使用 robocopy:social.technet.microsoft.com/wiki/contents/articles/… 你为什么编辑你的问题实际上是一个答案?如果没有原始问题,问答格式就会丢失。答案已经在下面了。将您的问题恢复为原始的非工作版本。 Find long file path 但同样的想法也适用于移动数据。 【参考方案1】:我的建议是这样的: 使用它来查找路径超过 256 个字符的所有文件 - How do I find files with a path length greater than 260 characters in Windows?
保存到 CSV 并将另一个脚本写入 CD 到该位置,然后仅使用文件名和目标路径复制/移动。
【讨论】:
【参考方案2】:信贷归 C.B.
这是使用 Robocopy 处理 LONG 文件路径的代码。
$destDir = "C:\test\Files\"
$csv = import-csv 'C:\test\FilesWithPath.csv'
#For each line in the CSV
$csv | %
robocopy $_.SourceFilePath $destDir $_.SourceFileName
【讨论】:
【参考方案3】:处理此问题的一种可能方法是将父目录subst
复制到驱动器号并从那里复制文件:
$csv | %
$i = $_.SourceFilePath.LastIndexOf('\')
$d = $_.SourceFilePath.SubString(0, $i)
$f = $_.SourceFilePath.SubString($i+1)
subst T: $d
Copy-Item "T:\$f" $destDir
subst T: /d
【讨论】:
以上是关于Powershell > 找不到路径,但它确实存在的主要内容,如果未能解决你的问题,请参考以下文章
Microsoft Office setup找不到powershell