Я хочу проверить файл .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
}
Любой может помочь мне решить эту проблему, пожалуйста. Спасибо.
Обновлено
$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
}