[CMD] Перемещение папок из одной папки в другую

Fahrenheit897

Новый пользователь
Сообщения
2
Реакции
0
Добрый день! Нужен батник который переносил бы папки названия которых удовлетворяют условию, в другую папку
Например есть папка D:\TEMP
В ней лежат еще папки с названиями 2342345, 2325346, 157516516, 125256655(0), упрпр(0) и т.д.
ну т.е.
D:\TEMP\2342345
D:\TEMP\2325346
D:\TEMP\125256655(0)
D:\TEMP\упрпр(1)
И нужно все папки названия которых заканчивается на (0), (1), (2)....в общем внутри скобок любая цифра - так вот такие папки с содержимым перенести в другую папку D:\TEMP2
Полуичилоась написать что то типа такого, но работает только с файлами и то не со всеми.
@echo off
for %%a in (D:\TEMP\() do move %%a "D:\TEMP2"
pause
 
Решение
CMD/BATCH:
@echo off
setlocal enabledelayedexpansion
set "source=D:\TEMP"
set "destination=D:\TEMP2"
for /d %%i in ("%source%\*") do (
  set "foldername=%%~ni"
  set "lastchar=!foldername:~-2,1!"
  if "!lastchar!" geq "0" if "!lastchar!" leq "9" (
    if exist "%%i\*" if "!foldername:~-1!"==")" (
      move "%%i" "%destination%\"
    )
  )
)
echo Done.
pause
CMD/BATCH:
@echo off
setlocal enabledelayedexpansion
set "source=D:\TEMP"
set "destination=D:\TEMP2"
for /d %%i in ("%source%\*") do (
  set "foldername=%%~ni"
  set "lastchar=!foldername:~-2,1!"
  if "!lastchar!" geq "0" if "!lastchar!" leq "9" (
    if exist "%%i\*" if "!foldername:~-1!"==")" (
      move "%%i" "%destination%\"
    )
  )
)
echo Done.
pause
 
CMD/BATCH:
@echo off
setlocal enabledelayedexpansion
set "source=D:\TEMP"
set "destination=D:\TEMP2"
for /d %%i in ("%source%\*") do (
  set "foldername=%%~ni"
  set "lastchar=!foldername:~-2,1!"
  if "!lastchar!" geq "0" if "!lastchar!" leq "9" (
    if exist "%%i\*" if "!foldername:~-1!"==")" (
      move "%%i" "%destination%\"
    )
  )
)
echo Done.
pause
Спасибо, всё четко, всё работает!
 
@Lunik, @regist, вот читеры :D

Человеческий интеллект:
CMD/BATCH:
@echo off
setlocal enableextensions disabledelayedexpansion
set "source=D:\TEMP"
set "destination=D:\TEMP2"
for /f "delims=" %%a in ('dir /b /ad "%source%" ^| findstr /ER "([0-9][0-9]*)"') do move "%source%\%%a" "%destination%\"
 
Назад
Сверху Снизу