Как вы перемещаете файлы / папки между томами с помощью Powershell? - PullRequest
15 голосов
/ 26 мая 2011

Я пытаюсь переместить папку с PowerShell

move-item  c:\test c:\test2

работает, но

move-item c:\test  \\192.168.1.50\c$\test2

нет и говорит мне

Move-Item: источник и назначение Путь должен иметь одинаковые корни. Переехать не будет работать для разных томов.

Ответы [ 3 ]

24 голосов
/ 26 мая 2011

Если test является каталогом, он не будет работать, поскольку документация для Move-Item гласит:

Move-Item будет перемещать файлы между дисками, которыеподдерживаются одним и тем же провайдером, но он будет перемещать каталоги только в пределах одного диска.

Вы можете использовать Copy-Item с последующим Remove-Item в этом случае:

try {
  Copy-Item -Recurse C:\test \\192.168.1.50\c$\test2 -ErrorAction Stop
  Remove-Item -Recurse c:\test
} catch {}

Другой вариант, если вы не полагаетесь на PSDrives, это просто использовать xcopy или robocopy.

4 голосов
/ 13 сентября 2011

Это нужно сжать и, вероятно, сделать из функции, но это работает.

$source = "<UNC Path>"
$destination = "<UNC Path>"

if (test-path $destination -PathType Container) 
{
  foreach ( $srcObj in (get-childitem $source )) 
  { 
    $srcObjPath = "$($srcObj.fullname)"
    $destObjPath = "$($destination)\$($srcObj.name)" 
    If((Test-Path -LiteralPath $destination)) 
     {
       copy-item $srcObjPath $destination -recurse
       if ( (Test-Path -Path $destObjPath ) -eq $true)
       {
        if ( (compare-object (gci $srcObjPath -recurse) (gci $destObjPath -recurse)) -eq $null)
        {
         write-output "Compare is good. Remove $($srcObjPath)"
         remove-item $srcObjPath -recurse
        }
        else
        {
          write-output "Compare is bad. Remove $($destObjPath)"
          remove-item $destObjPath -recurse
         }
       }
       else 
       { 
        write-output "$($destination) path is bad" 
       }
     }
  else
  {
    write-output "bad destinaton: $($destination)"
  }
 }
}
1 голос
/ 30 января 2014

У меня была похожая проблема. Я обнаружил, что в папке назначения разрешения пользователей были ограничены. Я изменил полные права на исходный и целевой диск, и перемещение прошло гладко. В команде move-item нет идентичного сообщения об ошибке с корнями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...