Да, я могу помочь с этой задачей. Вы можете выполнить ее как с помощью пакетного файла (батника), так и с помощью PowerShell. Вот решения для обоих методов:
### Метод 1: BAT-файл
Создайте текстовый файл с расширением `.bat`, например `move_folders.bat`, и вставьте в него следующий код:
```batch
@echo off
setlocal enabledelayedexpansion
set "source=G:\DOCS"
set "destination=G:\DOCS\2024"
for /d %%f in ("%source%\*") do (
set "foldername=%%~nxf"
if "!foldername:~-4!"=="2024" (
move "%%f" "%destination%"
)
)
endlocal
```
**Описание:**
- `setlocal enabledelayedexpansion`: включает расширение переменных.
- `for /d %%f in ("%source%\*") do`: перебирает все подкаталоги в указанной исходной папке.
- `set "foldername=%%~nxf"`: сохраняет имя текущей папки в переменной.
- `if "!foldername:~-4!"=="2024"`: проверяет, заканчивается ли имя папки на "2024".
- `move "%%f" "%destination%"`: перемещает папку в целевую директорию.
### Метод 2: PowerShell
Откройте PowerShell и выполните следующую команду:
```powershell
$source = "G:\DOCS"
$destination = "G:\DOCS\2024"
Get-ChildItem -Path $source -Directory | Where-Object { $_.Name.EndsWith("2024") } | Move-Item -Destination $destination
```
**Описание:**
- `Get-ChildItem -Path $source -Directory`: получает список всех подкаталогов в исходной папке.
- `Where-Object { $_.Name.EndsWith("2024") }`: фильтрует только те папки, названия которых заканчиваются на "2024".
- `Move-Item -Destination $destination`: перемещает отфильтрованные папки в целевую директорию.
### Запуск
- Для BAT-файла просто дважды щелкните на созданный файл, чтобы запустить его.
- Для PowerShell вы можете вставить команду в окно PowerShell и нажать Enter.
Выберите любой из предложенных методов, который вам больше подходит!