我有以下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
}
答案 0 :(得分:1)
我的建议是这样的: 使用此命令查找路径长度超过256个字符的所有文件 - How do I find files with a path length greater than 260 characters in Windows?
保存为CSV并将另一个脚本写入CD到该位置,并仅使用文件名和目标路径进行复制/移动。
答案 1 :(得分:1)
归功于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
}
答案 2 :(得分: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
}