Как скопировать файлы и папки с уже существующей папкой? - PullRequest
0 голосов
/ 29 июня 2018

Я создал скрипт для копирования папки / подпапки / файлов из определенного места в список серверов, которые я указал в блокноте.

Он проверяет, что если папка не была создана, он создаст ее и скопирует файлы, но если папка уже была создана, то она останавливается.

Однако я бы хотел копировать более новые файлы, даже если эта папка уже создана, хотя в ней нет подпапок или файлов.

Мой текущий код

[String] $KfxComputers = "C:\temp\Kofax Apps\servers.txt"

# This file contains the list of servers you want to copy files/folders to
$computers = get-content -Path $KfxComputers

# the folder you want to copy to the servers in the $computer variable
$sourceRoot = @("\\wdevkofx110\Kofax Software\Oracle Clients", 
            "\\wdevkofx110\Kofax Software\Kofax Capture 11")

# the destination location you want the file/folder(s) to be copied to
$destinationRoot = "C$\temp"

foreach ($computer in $computers) {

$testpath = Test-Path -Path \\$computer\$destinationRoot

if (!$testpath) 
{
    Write-Host "creating folder and copying files..." -ForegroundColor green

    New-Item -ItemType Directory -Force -Path "\\$computer\$destinationRoot"
    copy-item -Path $sourceRoot -Recurse -Destination 
    "\\$computer\$destinationRoot" -Container

} else {
        Write-Host "$computer\$destinationRoot folder already exists"
       }

}`

1 Ответ

0 голосов
/ 29 июня 2018

Вы можете использовать Else IF

[String] $KfxComputers = "C:\temp\Kofax Apps\servers.txt"

# This file contains the list of servers you want to copy files/folders to
$computers = get-content -Path $KfxComputers

# the folder you want to copy to the servers in the $computer variable
$sourceRoot = @("\\wdevkofx110\Kofax Software\Oracle Clients", 
        "\\wdevkofx110\Kofax Software\Kofax Capture 11")

# the destination location you want the file/folder(s) to be copied to
$destinationRoot = "C$\temp"

foreach ($computer in $computers) {

$testpath = Test-Path -Path \\$computer\$destinationRoot

if (!$testpath) 
{
   Write-Host "creating folder and copying files..." -ForegroundColor green

   New-Item -ItemType Directory -Force -Path "\\$computer\$destinationRoot"
   copy-item -Path $sourceRoot -Destination 
   "\\$computer\$destinationRoot" -Container -Recurse -force 

} 

ElseIF ($testpath) {
   Write-Host "folder already exists, copying files..." -ForegroundColor green
   copy-item -Path $sourceRoot -Destination 
   "\\$computer\$destinationRoot" -Container -Recurse -force 
  }


 else {
    Write-Host "$computer\$destinationRoot folder already exists"
   }

}`
...