CMD/BAT - Написать батник

Ответить
Аватара пользователя
SHADOWemp

CMD/BAT - Написать батник

Сообщение SHADOWemp »

Есть такая задача.



Есть папка 777 в ней 10 папок, в каждой папке разное количество файлов .CR2. - нужно что бы закидываешь батник в папку 777 - запускаешь его и он скопировал все файлы .CR2 из всех папок и положил их в папку на рабочий стол - назовем ее WORK.



Но некоторые файлы имеют имя IMG0001_1.CR2 , мне нужно что бы батник убирал в этих файлах _1.CR2 и оставлял просто имя IMG0001.CR2. Не селен в батниках, но очень нужно для работы. Если переименование не получается, то остановимся на копировании из всех папок папки 777
Аватара пользователя
Elven

Re: CMD/BAT - Написать батник

Сообщение Elven »

Спасибо огромное Elven но Тотал не вариант. По многим причинам(объяснять не буду) Просто работа с диким количеством папок и файлов, и каждый раз заходить и юзать ТС гемор.
Аватара пользователя
SHADOWemp

Re: CMD/BAT - Написать батник

Сообщение SHADOWemp »

Написал вот такой батник



setlocal enabledelayedexpansion

for /R %%i in (*) do (

set ss=%%~nxi

if /i! ss:~-6!==_1.CR2 ren %%i! ss:~,-6!.cr2

copy %%i %path_on%

)



Но не работает.
Аватара пользователя
SHADOWemp

Re: CMD/BAT - Написать батник

Сообщение SHADOWemp »

Цитата SHADOWemp:



Просто работа с диким количеством папок и файлов, и каждый раз заходить и юзать ТС гемор.
CMD/BAT - Написать батник




TotalCmd: Ctrl+B после входа в 777.




Цитата SHADOWemp:



Но не работает.
CMD/BAT - Написать батник




Как минимум — у вас переменная %path_on% не определена.
Аватара пользователя
alpap

Re: CMD/BAT - Написать батник

Сообщение alpap »

Цитата SHADOWemp:



нужно что бы закидываешь батник в папку
CMD/BAT - Написать батник




вероятно удобнее чтобы: Закидываешь папку с файлами на батник





Код:

Код: Выделить всё

@echo off
set "m=IMG*_*.CR2"
for /f "tokens=1* delims=_" %%a in ('dir /a-d/b/s "%~1\%m%"') do echo f|xcopy /iy "%%a_%%b" "%UserProfile%\Desktop\%~n1\%%~nxa%%~xb" >nul 2>&1
pause
exit

Но учтите такой момент. В силу вашего условия


Цитата SHADOWemp:



убирал в этих файлах _1
CMD/BAT - Написать батник




может оказаться так:

IMG0001_1.CR2

IMG0001_2.CR2

IMG0001_111.CR2

как видите, оставшаяся часть имени идентичная и в моем коде перезапишется в конечном таком итоге последним таким файлом иначе надо указать как поступить в случае такой проблемы. Ведь неспроста именно такое именование файлов и было изначально или именно к примерно такому мы и придем, решая проблему сохранения с исключением перезаписи.
Аватара пользователя
SHADOWemp

Re: CMD/BAT - Написать батник

Сообщение SHADOWemp »

Цитата:



Код: Выделить весь код



@echo off

set "m=IMG*_*.CR2"



for /f "tokens=1* delims=_" %%a in ('dir /a-d/b/s "%~1\%m%"') do echo f|xcopy /iy "%%a_%%b" "%UserProfile%\Desktop\%~n1\%%~nxa%%~xb" >nul 2>&1



pause

exit



Но учтите такой момент. В силу вашего условия



Огромное спасибо!
Ответить

Вернуться в «Скриптовые языки администрирования Windows»