Компьютерный форум 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=296752)

dedo1 11-03-2015 22:22 2481535

Батник - поиск, перемещение и другое.
 
Здравствуйте. Возможно ли сделать батник такой, что бы он находил файлы, в которых присутствует слово 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 2481772

Почти во всем разобрался только не знаю как сохранить оба файла при перемещении в одну папку.
Помогите пожалуйста.

dedo1 04-04-2015 15:04 2491717

не кто не знает?

Гуллипут 05-04-2015 15:09 2492028

Код:

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 2627100

что то не получается, можете написать полностью готовый скрипт?

Iska 17-04-2016 14:37 2627120

Цитата:

Цитата dedo
что то не получается »

Что именно?

Гуллипут 19-04-2016 00:02 2627645

Видимо, нужен не пример алгоритма, а готовое решение по исходным данным. Что-то вроде этого:
Код:

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

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

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


Время: 03:32.

Время: 03:32.
© OSzone.net 2001-