Задать вопрос
@p4_pirate
Dumb Sysadmin

Как скопировать файлы по условию?

Есть папка G:\DOCS в которой лежат другие папки по формату "Товарная накладная № Х от 01.01.2024" и там же создана папка G:\DOCS\2024. Есть задача перенести все папки которые заканчиваются на 2024 в папку 2024. Задача вроде простая, но никак не могу понять как это сделать. Помогите, плиз!

Можно батником, можно через powershell
  • Вопрос задан
  • 100 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
oia
@oia
сохранить в *.ps1

# Определяем путь к папке с документами и папке назначения
$sourcePath = "G:\DOCS"
$destinationPath = "G:\DOCS\2024"

# Проверяем, существует ли папка назначения, если нет – создаем её
if (-Not (Test-Path -Path $destinationPath)) {
try {
New-Item -ItemType Directory -Path $destinationPath
Write-Host "Создана папка назначения: $destinationPath"
} catch {
Write-Host "Ошибка при создании папки: $_"
exit
}
}

# Получаем список всех папок в исходной директории, которые заканчиваются на 2024
$foldersToMove = Get-ChildItem -Path $sourcePath -Directory | Where-Object { $_.Name -like "*2024" }

# Проверяем, есть ли папки для перемещения
if ($foldersToMove.Count -eq 0) {
Write-Host "Не найдено папок для перемещения."
exit
}

# Перемещаем папки в папку назначения
foreach ($folder in $foldersToMove) {
try {
Move-Item -Path $folder.FullName -Destination $destinationPath -Force
Write-Host "Перемещена папка: $($folder.FullName) в $destinationPath"
} catch {
Write-Host "Ошибка при перемещении папки: $($folder.FullName) - $_"
}
}

Write-Host "Процесс перемещения завершен."
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы