Войти

Показать полную графическую версию : [решено] Перенос файлов на другой диск


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

amel27
20-04-2011, 11:38
как-то так (если правильно понял задачу):
@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
)))




© OSzone.net 2001-2012