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

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

McLotos 20-04-2011 09:33 1662159

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

amel27 20-04-2011 11:38 1662250

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

@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
)))



Время: 17:49.

Время: 17:49.
© OSzone.net 2001-