reiu
Posty: 1449 (po ~301 znaków)
Reputacja: 0 | BluzgometrTM: 13
reiu
  19 marca 2012 (pierwszy post)

Mam zapytanie do fachowców ;)

Kombinuje jakby tu spod cmd zmienić nazwy plików aby wyglądało to mniej więcej tak:

Przed:
manekin_01.jpg
manekin_02.jpg
manekin_03.jpg
manekin_04.jpg
manekin_05.jpg


Po:
manekin.jpg
manekin(1).jpg
manekin(2).jpg
manekin(3).jpg
manekin(4).jpg


Dla objaśnienia podam, że to co wyżej napisałem to tylko jeden produkt, którego nazwa w rzeczywistości może być różna (głównie cyfry, duże litery i czasem -) a w folderze znajduje się takich wiele i chodzi mi o to aby napisać skrypt w cmd, który z automatu pozmienia mi części od _01 do _05 na podane na przykładzie. Do tej pory niestety musiałem to robić ręcznie ale z racji coraz do większej ilości zdjeć jest to po prostu wkurzające i zabiera sporo czasu :/
Fakt, można to zrobić programami ale niestety na służbowym kompie nie mogę zainstalować niczego :/ więc muszę sobie radzić tym co mam pod ręką. Od razu dodam, że programistą to ja nie jestem :P

Btw. jakby ktoś miał koncepcję jak napisać skrypt, który z plików tiff zrobi jpg w określonej rozdzielczości to byłbym wdzięczny za info ;)

dymion
dymion
  19 marca 2012

będziesz potrzebował instrukcji if i pętli for, ale bardziej Ci nie pomogę, bo olałem tę lekcję. :P

reiu
Posty: 1449 (po ~301 znaków)
Reputacja: 0 | BluzgometrTM: 13
reiu
  20 marca 2012

Hehe, ja dobre 10 lat temu jakieś struktury katalogów przez cmd robiłem jedynie i to było jedyne co zapamiętałem xD
Chwilę pooglowałem, znalazłem jakiś inny kod i trochę go zmieniłem pod to co chciałbym osiągnąć ale niestety ogarnąłem to jedynie dla pliku zawierającego _01.jpg a teraz pozostaje podmienić _02 i resztę.
Użyłem czegoś takiego:

@echo off
for %%i in (*_01.jpg) do (set fName=%%i) & call :rename
goto :eof
:rename
:: Crops the 1st 4 characters of fName):
ren %fName% %fName:~0,-7%
goto :eof

reiu
Posty: 1449 (po ~301 znaków)
Reputacja: 0 | BluzgometrTM: 13
reiu
  20 marca 2012

Jednak wyżej wymieniony kod nie działa u mnie w robocie, dziwne bo sprawdzając go w domu bez problemu odcinał _01 z nazw plików a w pracy odcina całość _01.jpg razem z rozszerzeniem pliku.
Wcześniej kombinowałem na takiej zasadzie:

ren *_01.jpg *_a_01.jpg
ren *_02.jpg *_a_02.jpg
ren *_03.jpg *_a_03.jpg
ren *_04.jpg *_a_04.jpg
ren *_05.jpg *_a_05.jpg
ren *_06.jpg *_a_06.jpg
ren *_07.jpg *_a_07.jpg


Tego akurat użyłem aby dodało a_ co wcześniej robiłem ręcznie w celu oznaczenia zdjęć robionych na manekinach. Próbowałem użyć formy:

ren *_02.jpg *(1).jpg
ren *_03.jpg *(2).jpg
ren *_04.jpg *(3).jpg


ale w tym przypadku zamiast zmienić to dodaje do nazwy (1).jpg zmieniając 569129_02.jpg w 569129_02.jpg(1).jpg gdzie prawidłowa forma powinna wyglądać tak 569129(1).jpg

reiu
Posty: 1449 (po ~301 znaków)
Reputacja: 0 | BluzgometrTM: 13
reiu
  20 marca 2012

Ogarnąłem temat :mrgreen:

Ten kodzik załatwia sprawę:

Konto usunięte
Konto usunięte: @echo off for %%i in (*.jpg) do (set fName=%%i) & call :rename goto :eof :rename ren %fName% %fName:~0,-7%.jpg for %%i in (*_02.jpg) do (set fName=%%i) & call :rename goto :eof :rename ren %fName% %fName:~0,-7%(1).jpg for %%i in (*_03.jpg) do (set fName=%%i) & call :rename goto :eof :rename ren %fName% %fName:~0,-7%(2).jpg for %%i in (*_04.jpg) do (set fName=%%i) & call :rename goto :eof :rename ren %fName% %fName:~0,-7%(3).jpg for %%i in (*_05.jpg) do (set fName=%%i) & call :rename goto :eof :rename ren %fName% %fName:~0,-7%(4).jpg for %%i in (*_06.jpg) do (set fName=%%i) & call :rename goto :eof :rename ren %fName% %fName:~0,-7%(5).jpg goto :eof


Całość prawdopodobnie działa na zasadzie, że odcina 7 ostatnich znaków w pliku i podmienia je na żądane nazwy gdzie np. wszystkie pliki jpg zawierające w nazwie _02.jpg podmieni na (1).jpg itd.
Dyskusja na ten temat została zakończona lub też od 30 dni nikt nie brał udziału w dyskusji w tym wątku.