Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] bat перемещение из всех вложенных папок в корневую с переименованием (http://forum.oszone.net/showthread.php?t=337671)

strel9 13-11-2018 14:52 2840526

bat перемещение из всех вложенных папок в корневую с переименованием
 
помогите пожалуйста написать батник, то что нужно найти не могу, а самому написать не хватает знаний.
есть такой батник выполняющий только перемещение из одной папки, помогите пожалуйста доработать.

Код:

@Echo Off

Set Otkuda=E:\A\1
Set Kuda=E:\A\

Move /Y "%Otkuda%\*.jpg*" "%Kuda%\" >nul 1>nul 2>nul
FOR /D %%d IN ("%Otkuda%\*.jpg*") DO Move /Y "%%d" "%Kuda%\" >nul 1>nul 2>nul

нужен такой результат:

например
копирую батник в папку "123"
при запуске он пробегает по всем вложенным папкам (один уровень вложенности), ищет в каждой папке файл 11.jpg
переименовываем в название вложенной папки в которой он лежит и после этого перемещаем в корневую папку, в которой батник.

было
123/01/11.jpg
123/02/11.jpg
123/03/11.jpg

результат
123/01.jpg
123/02.jpg
123/03.jpg

alpap 13-11-2018 17:22 2840543

предохранитель - echo
Код:

@echo off
set "d=C:\123"
set "f=11.jpg"

for /d %%d in ("%d%\*") do for /f "delims=" %%f in ('2^>nul dir /a-d/b/s "%%~d\%f%"') do echo copy "%%f" "%d%\%%~nxd%%~xf"
pause


megaloman 13-11-2018 17:44 2840547

Цитата:

Цитата strel9
копирую батник в папку "123"
... он пробегает по всем вложенным папкам (один уровень вложенности)»

Код:

@Echo Off
FOR /D %%d IN (*.*) DO If Exist "%%d\11.jpg" Move "%%d\11.jpg" "%%d.jpg" >nul

Или
Код:

@Echo Off
        Set "FileName=11.jpg"
        FOR /D %%d IN (*.*) DO Call :MyMove "%%d" "%FileName%"
GoTo :Eof

:MyMove
        If Exist "%~1\%~2" Move "%~1\%~2" "%~1%~x2" >nul
GoTo :Eof

А если не копировать
Код:

@Echo Off
        Set "BoxIn=Z:\Box_In\123"
        Set "FileName=11.jpg"
        FOR /D %%d IN ("%BoxIn%\*.*") DO Call :MyMove "%%d" "%BoxIn%" "%FileName%"
GoTo :Eof

:MyMove
        If Exist "%~1\%~3" Move "%~1\%~3" "%~2\%~nx1%~x3" >nul
GoTo :Eof


strel9 13-11-2018 18:46 2840557

megaloman, супер, спасибо большое) именно то, что нужно :clapping:


Время: 10:32.

Время: 10:32.
© OSzone.net 2001-