Переместить только новые файлы в другой каталог - Powershell - PullRequest
0 голосов
/ 06 января 2020

Запуск следующего в powershell. Цель состоит в том, чтобы переместить файлы из папки 2 в папку 1, но только новые файлы. Также хотел бы знать, какие файлы были перемещены, сортируйте как файл журнала, если это возможно

Вот что у меня есть:

 $DownloadFolder = 'C:\FOLDER1' 

 $KeepFolder = 'C:\folder2'

 $DownloadFiles = Get-ChildItem -Path $DownloadFolder


    $KeepFiles = Get-ChildItem -Path $KeepFolder
    $FileDiffs = Compare-Object -ReferenceObject $DownloadFiles -DifferenceObject $KeepFiles
    $FileDiffs | foreach {
    $copyParams = @{
     'path' = $_.InputObject.Fullname
       }
 $Downloadll = $copyParams.path
 if ($_.SideIndicator -eq '=>')
  {
   Copy-Item $Downloadll -Destination $KeepFolder   -force
 }
}

Попытка сравнить папку 1 и папку 2 и переместить ТОЛЬКО новые файлы в папке Но получаю следующую ошибку:

  "" Cannot overwrite with the item filename.txt   with itself

Ответы [ 2 ]

4 голосов
/ 06 января 2020

Я хотел бы изучить использование команды "robocopy".

Она может перемещать только новые файлы и дает вам нужный журнал.

https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy https://serverfault.com/questions/129098/how-to-get-robocopy-running-in-powershell

0 голосов
/ 07 января 2020

В первой строке после $ downloadfolder стоит двоеточие.

Оно также написано неправильно.

Вы хотите <=, а не =>. В противном случае он пытается скопировать в первую папку.

Добавить -passthru в copy-item для получения вывода.

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