移动项目“不支持路径”。

时间:2016-08-11 22:08:51

标签: powershell

我们有一个脚本可以成功地将文件夹压缩到7z,然后在压缩文件夹后删除它。 我们想要做的是将压缩的7z文件移动到另一个位置,该位置更便宜的存储以及备份/异地存档目的。

我已经尝试了以下但是我收到错误“路径不受支持。”

有人能够提供帮助吗?

Get-ChildItem 'E:\AbleyTest\TestFolder\_Archived\*' | Where-Object {
  $_.PSIsContainer
} | Select-Object -Expand FullName | ForEach-Object {
  & 7z.exe a -mx=9 -t7z "$_.7z" "$_"
  if ($LastExitCode -eq 0) {
    $folder = (Get-Item $_).Parent.Parent.Name
    if (Test-Path "e:\archived\$folder") {
      Move-Item -Path "$_.7z" -Destination "e:\archived\$folder\$_.7z"
    } else {
      New-Item "e:\archived\$folder" -Type directory
      Move-Item -Path "$_.7z" -Destination "e:\archived\$folder\$_.7z"
    }
    Remove-Item -Path $_ -Force -Recurse
  } else {
    Add-Content "e:\scripts\archivelog $(get-date -f dd-MM-yyyy).txt" "$_ ran into error $LastExitCode while archiving"
  }
}

1 个答案:

答案 0 :(得分:3)

您的目的地路径无效。请注意$_是某个文件夹的完整路径(例如E:\AbleyTest\TestFolder\_Archived\SomeFolder,您的目标路径为:

"e:\archived\$folder\$_.7z"

突然变成:

e:\archived\TestFolder\E:\AbleyTest\TestFolder\_Archived\SomeFolder.7z

编辑:我刚刚意识到我告诉了你这个问题,但并没有真正帮助你解决问题。目标路径不需要文件名(它保留了在目的地使用的文件名),因此只需在$folder之后停止,您应该没问题:

Move-Item -Path "$_.7z" -Destination "e:\archived\$folder"