CMD/BAT - [решено] Перенос файлов на другой диск

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

CMD/BAT - [решено] Перенос файлов на другой диск

Сообщение McLotos »

Подскажите как написать команду, которая переносила бы файлы из одного каталога в другой в зависимости от расширения. Ну допустим перенести все изображения из МyDocs в D:\Img, а все *.doc* в D:\Doc и так со всеми типами. В принципе я знаком с командой move, но что-то она не очень подходит, как правильно написать код, чтобы файлы переносились по этой логике, и переименовывались, если там уже есть файл с этим названием.
Аватара пользователя
amel27

Re: CMD/BAT - [решено] Перенос файлов на другой диск

Сообщение amel27 »

как-то так (если правильно понял задачу):



Код:

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

@echo off
SETLOCAL EnableDelayedExpansion
set $t_img=jpg bmp
set $p_img=D:\Img
set $t_doc=doc xls
set $p_doc=D:\Doc
PushD C:\MyDocs
::-------------
for /f "tokens=1,2* delims==_" %%a in ('set $t_') do (set "$c=%%c"
for /f "delims=" %%A in ('"dir/b/s/a-d *.!$c: = *.!"') do (
if not exist "!$p_%%b!\%%~nxA" (move "%%A" "!$p_%%b!\">nul) else (set $n=1
for %%i in ("!$p_%%b!\%%~nA_*%%~xA") do if exist "!$p_%%b!\%%~nA_!$n!%%~xA" set/a $n+=1
ren "%%A" "%%~nA_!$n!%%~xA"&& move "%%~dpnA_!$n!%%~xA" "!$p_%%b!\">nul
)))
Ответить

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