Войти

Показать полную графическую версию : Батник - поиск, перемещение и другое.


dedo1
11-03-2015, 22:22
Здравствуйте. Возможно ли сделать батник такой, что бы он находил файлы, в которых присутствует слово prikol и имели расширение .jpg и переместила их в D:\kartinki\prikoli (с такой фишкой [файл с таким именем уже существует "переместить, но сохранить оба файла"])?
находить надо будет из таких папок как C:\Users\eshik\Desktop C:\Users\eshik\Pictures и C:\Users\eshik\Downloads
И если кому не трудно напишите пожалуйста скрипт.
p.s. для чего это нужно? для сортировки изображений, нашел нужное изображение переименовал его в prikol2a42, нашел еще одно переименовал его в prikolus5. через недельку батник запускаешь и он сам находит и помешает в нужные разделы. В идеале хочу сделать много подразделов в разделе D:\kartinki\ там приколы к примеру, юмор, граффика, игры и т.д.

dedo1
12-03-2015, 16:25
Почти во всем разобрался только не знаю как сохранить оба файла при перемещении в одну папку.
Помогите пожалуйста.
http://s1.hostingkartinok.com/uploads/images/2015/03/809af6c33a80d6848f18ea511fafcb36.jpg

dedo1
04-04-2015, 15:04
не кто не знает?

Гуллипут
05-04-2015, 15:09
setlocal EnableDelayedExpansion
set indir=1
set outdir=2

for /R "%indir%" %%f in (*prikol*.jpg) do (
set name=%%~nxf
set ininame=!name!
set c=1
call :loop
move "%%f" "%outdir%\!name!"
)

goto :eof
:loop
if exist "%outdir%\!name!" (
set /A c+=1
set name=!ininame!^(!c!^)
goto loop
)

dedo
17-04-2016, 12:41
что то не получается, можете написать полностью готовый скрипт?

Iska
17-04-2016, 14:37
что то не получается »
Что именно?

Гуллипут
19-04-2016, 00:02
Видимо, нужен не пример алгоритма, а готовое решение по исходным данным. Что-то вроде этого:
setlocal EnableDelayedExpansion
set indirs=C:\Users\eshik\Desktop C:\Users\eshik\Pictures и C:\Users\eshik\Downloads
set outdir=D:\kartinki\prikoli

for %%d in (indirs) do (
for /R "%%d" %%f in (*prikol*.jpg) do (
set name=%%~nxf
set ininame=!name!
set c=1
call :loop
move "%%f" "%outdir%\!name!"
)
)

goto :eof
:loop
if exist "%outdir%\!name!" (
set /A c+=1
set name=!ininame!^(!c!^)
goto loop

Но отлаживать мне сейчас некогда.

Между прочим, удивляет "бешеная" скорость реакции - почти год прошёл со времени моего предыдущего ответа.




© OSzone.net 2001-2012