1

我有以下 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 
        }
4

3 回答 3

1

归功于 CB

这是使用 Robocopy 处理 LONG 文件路径的代码。

$destDir = "C:\test\Files\"
$csv = import-csv 'C:\test\FilesWithPath.csv'

#For each line in the CSV
$csv | % {                                                           

            robocopy $_.SourceFilePath $destDir $_.SourceFileName 
        }
于 2013-05-24T15:07:13.130 回答
1

我的建议是:使用它来查找路径长度超过 256 个字符的所有文件 - 如何在 Windows 中查找路径长度大于 260 个字符的文件?

保存到 CSV 并将另一个脚本写入 CD 到该位置,然后仅使用文件名和目标路径进行复制/移动。

于 2013-05-24T14:16:56.767 回答
0

处理此问题的一种可能方法是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
}
于 2013-05-24T15:30:18.097 回答