Войти

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


tobornforlife@vk
22-02-2014, 17:04
День добрый. Только учусь. Перерыл все форумы, но особо в тестами ни к чему не пришел. Очень надеюсь на вашу аудиторию

Цель такая:

В корневом каталоге Имеются 2 папки: system и shots.

При каждом запуске bat-a все jpg ( появляются в папке system ежедневно автоматически с именем shot00001.jpg ) они копируются в /shots, но

так, как файлы имеют одинаковые имена они не добавляются после первого дня.

нужно сделать так:

сначала, чтобы в папке /shots все имеющеися файлы приводились в такой вид Shot_X_001.jpg ( где X - Дата создания! )

затем соответственно с /system копироваться новые файлы будут легко


for %%f in (shots\*.jpg) do ren "%%f" %date%*.jpg

не работает, да много чего пробывал.

Очень надеюсь на вас) спасибо заранее!

Iska
22-02-2014, 18:28
Проще создавать папки с именем даты в каталоге «shots» и перемещать (а не копировать) туда файлы.

tobornforlife@vk
23-02-2014, 16:13
Проще создавать папки с именем даты в каталоге «shots» и перемещать (а не копировать) туда файлы. »

Это намного проще, но так нельзя(

Georgio
24-02-2014, 05:08
@echo off
for /f "tokens=1,2,3 delims=./" %%f in ("%date%") do (
set d=%%h.%%g.%%f
)
setlocal enabledelayedexpansion
for /f "tokens=2,3 delims=_" %%f in ('
dir /a-d /b /o-n shots^| findstr Shot_[0-9]*\.[0-1][0-9]\.[0-3][0-9]_[0-9]*\.jpg
') do (
if "%%f"=="%d%" (
for /f "tokens=* delims=0" %%h in ("%%g") do (
set n=%%h
set n=!n:.jpg=!
goto:#
)) else (
set n=0
goto:#
))
:#
for /f "tokens=*" %%f in ('
dir /a-d /b shots^| findstr shot[0-9]*\.jpg
') do (
set /a n+=1
if !n! lss 10 (
ren shots\%%f Shot_%d%_00!n!.jpg
) else (
if !n! lss 100 (
ren shots\%%f Shot_%d%_0!n!.jpg
) else (
if !n! lss 1000 (
ren shots\%%f Shot_%d%_!n!.jpg
) else (
echo ЌҐў®§¬®¦*® ЇҐаҐЁ¬Ґ*®ў*вм Ї® ¤***®¬г *«Ј®аЁв¬г Ў®«ҐҐ 999 д*©«®ў ў бгвЄЁ.
echo Ќ*¦¬ЁвҐ «оЎго Є«*ўЁиг ¤«п ўл室*.
pause>nul
goto:##
))))
:##
endlocal
exit /b

tobornforlife@vk
24-02-2014, 16:11
Файл не найден
Файл не найден

Georgio
24-02-2014, 17:07
Я немного подредактровал код, но думаю, что проблема в другом: либо пакетный файл находится не в одной директории с папкой "shots", либо эта папка называется по-другому, либо эта папка скрытая и (или) системная.




© OSzone.net 2001-2012