Как ограничить копирование файла с помощью Powershell? - PullRequest
0 голосов
/ 16 октября 2019

Я хочу проверить файл .jpg во 2-й папке. Вторая папка имеет некоторую подпапку. если .jpg существует в подпапке 2-й папки, я скопирую файл из 1-й папки в подпапку 2-й папки на основе базового имени. Я могу сделать эту часть, обратитесь к этому ответу Как скопировать файл на основе совпадения имени файла с помощью PowerShell?

Но я хочу сделать ограничение при копировании файла из 1-й папки. Я НЕ буду копировать файл, если я уже скопировал один и тот же файл из 1-й папки во 2-ю папку 3 раза.

Это код из ссылки.

$Job_Path = "D:\Initial"
$JobError = "D:\Process"

Get-ChildItem -Path "$OpJob_Path\*\*.jpg" | ForEach-Object {
    $basename = $_.BaseName.Substring(15)
    $job = "$Job_Path\${basename}.png"
    if (Test-Path $job) {
        $timestamp = Get-Date -Format 'yyyyMMddhhmmss'
        $dst = Join-Path $_.DirectoryName "${timestamp}_${basename}.gif"
        Copy-Item $job $dst -Force
    }

enter image description here

Любой может помочь мне решить эту проблему, пожалуйста. Спасибо.

Обновлено

$Job_Path = "D:\Initial"
$JobError = "D:\Process"

Get-ChildItem -Path "$OpJob_Path\*\*.jpg" | ForEach-Object {
    $basename = $_.BaseName.Substring(15)
    $job = "$Job_Path\${basename}.png"
    if (Test-Path $job) {
        $timestamp = Get-Date -Format 'yyyyMMddhhmmss'
        $dst = Join-Path $_.DirectoryName "${timestamp}_${basename}.gif"
        $Get = (Get-ChildItem -Name "$OpJob_Path\*\*$basename.jpg*" | Measure-Object).Count
        $Get
        if ($Get -eq "3") {
            Write-Host "Continue Other Process"
            NEXT_PROCESS
        } else {
            Write-Host "Less than 3"
        }
        Copy-Item $job $dst -Force
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...