Powershell Скопируйте несколько файлов с определенными номерами - PullRequest
1 голос
/ 25 мая 2020

Все еще довольно новичок в Powershell, я хотел бы скопировать несколько файлов с одного сервера на другой. Файлы, которые я хочу скопировать, содержат те же два числа 18 или 19.

Copy-Item -Path \\test\files\07_Export -Filter '*18.csv' -Destination \\test01\files$\2018;

Copy-Item -Path \\test\files\07_Export -Filter '*19.csv' -Destination \\test01\files$\2019;

В качестве примера Test18.csv

question19.csv

search18.csv

Сейчас просто копирует пустую папку 07_export.

Ответы [ 2 ]

0 голосов
/ 25 мая 2020

Вот регулярное выражение, которое будет записывать 18 или 19 в имени файла, а затем копировать результаты в одно из двух разных мест назначения.

Get-ChildItem -Path \\test\files\07_Export | 
    Where-Object { $_.Name -match ".*[18|19].*" } | 
        Foreach-Object {
            if ($_.Name -match "18") {
                Copy-Item -Path $_.Fullname -Destination \\test01\files$\2018
            }
            else {
                Copy-Item -Path $_.Fullname -Destination \\test01\files$\2019
            }
        }

Вы можете посмотреть, чтобы использовать PSDrive для сетевых местоположений. Get-PSDrive и New-PSDrive

0 голосов
/ 25 мая 2020

Это должно служить вашей цели.

$filename = (Get-ChildItem "<Source Folder>" -Recurse | Where-Object { $_.FullName -imatch "18" -or $_.FullName -imatch "19" }).FullName
foreach ($file in $filename) {
    Copy-Item -Path $file -Destination "<Destination Folder>"
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...