Показать полную графическую версию : Сравнивание и переименвание файлов
Задача для меня такова:
есть папка 2013 в ней находится папка All Files и много файлов формата xxx1.ufo, xxx2.ufo, xxx3.ufo итд (наш местный формат), в Папку 2013 каждый день падают такие файлы с разными названиями но одинакового формата нужно что бы батник делал следующее
все файлы в папке 2013 переименовывал в формат xxx_001.ufo, xxx_002.ufo итд где 00х это порядковый номер и переносил их в папку All Files далее когда на следующий день он должен сравнивать какой номер последний в папке All Files и в паке 2013 ставить следующий порядковый номер.
Вроде так. Просто не соображу как это сделать помогите плиз!!!!
@echo off
set folder=2013
set for=All files
set n=0
cd %cd%
if not exist log.txt goto :next
for /f %%i in (' more +0 log.txt ') do set n=%%i
:next
for /f "delims=*" %%H in ('dir /b /a-d "%folder%\*.*"') do call :0 "%%~nxH"
goto:eof
:0
set /a n=%n%+1
set numb=00%n%
if /i %n% GEQ 10 set numb=0%n%
if /i %n% GEQ 100 set numb=%n%
cd "%folder%"
ren "%1" xxx_%numb%.ufo
move xxx_%numb%.ufo "%for%\"
cd ..
echo %n% >log.txt
файл log.txt не удалять там сохраняется счетчик(удалишь счетчик обнулится)
zion87,
Можешь расшифровать каждую строчку???
Как сделать что бы батник запускался с любово места то есть с любой папки где бы не находился батник???? (нужно наверно как то прописать путь к папкам только как???
@echo off
chcp 1251
::Присваиваем переменным значения(адреса)
set log=%cd%
set koren="C:\Documents and Settings\Admin\Рабочий стол\ufo"
set folder=2013
set for=All files
set n=0
::Ищем файл log.txt если есть то извлекаем последнее число
if not exist log.txt goto :next
for /f %%i in (' more +0 log.txt ') do set n=%%i
:next
::Переходим в дирректорию с папкой 2013
cd /d %koren%\
::Находим все файлы в папке 2013
for /f "delims=*" %%H in ('dir /b /a-d "%folder%\*.*"') do call :0 "%%~nxH"
goto:eof
:0
::Накручиваем счетчик
set /a n=%n%+1
set numb=00%n%
if /i %n% GEQ 10 set numb=0%n%
if /i %n% GEQ 100 set numb=%n%
::Переходим в папку 2013
cd "%folder%"
::Переименовываем файлы согласно вашей маске
ren "%1" xxx_%numb%.ufo
::Перетаскиваем файлы в All files
move xxx_%numb%.ufo "%for%\"
::Заносим последний поряд. номер в log.txt
echo %n% >"%log%\log.txt"
Попробуйте так: добавил кавычки(дабы включить пробелы), ключ /d к команде cd(переход на другие диски) и кодировку chcp 1251
Не хочет. Вставляю путь пишет не удается найти указанный файл
Путь точно правильный.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.