bat-ник для увеличения номера файла
имхо средствами батников это не делается. попробуй яваскрипт.
это делается средствами яваскрипта? 

да, в WSH
Имелся ввиду Windows Script Host. Для него можно писать на VBScript и JavaScript.
а... не пугай так:)
ёёёё, я надеялся малой кровью. Проще изменить логику программы, которая эти файлы использует(графики по ним строит)
спасибо за реплаи
кста, а что, ЯваСкрипт умеет работать с регулярными выражениями (без них тут, вроде, никак)?
спасибо за реплаи

кста, а что, ЯваСкрипт умеет работать с регулярными выражениями (без них тут, вроде, никак)?
посимвольной работы со стрингами здесь хватит за глаза
Имхо делается, надо тока Lynn подождать 

работа единоразовая?
Номера идут по порядку? Длина номеров одинакова?
Тогда можно и батником обойтись, имхо. Но если в цифрах нет ведущих нулей, то не получится (не будет правильно работать сортировка).
Идея: получить список файлов (dir /b >>tmpfile дописать в конец имя, которое должно быть у последнего файла (echo .... >>tmpfile отсортировать по убыванию (sort /r).
Затем в цикле читаем этот файл (for /? каждый раз вызываем ren, параллельно сохраняя в переменной окружения имя, т.е. (нужные параметры для for посмотри сам):
for %%I.... do call :mylabel %%I
goto :eof
:mylabel
if -%save%-==-- goto cont
if -%1-==-.- goto :eof
if -%1-==-..- goto :eof
ren %1 %save%
:cont
set save=%1
goto :eof
Номера идут по порядку? Длина номеров одинакова?
Тогда можно и батником обойтись, имхо. Но если в цифрах нет ведущих нулей, то не получится (не будет правильно работать сортировка).
Идея: получить список файлов (dir /b >>tmpfile дописать в конец имя, которое должно быть у последнего файла (echo .... >>tmpfile отсортировать по убыванию (sort /r).
Затем в цикле читаем этот файл (for /? каждый раз вызываем ren, параллельно сохраняя в переменной окружения имя, т.е. (нужные параметры для for посмотри сам):
for %%I.... do call :mylabel %%I
goto :eof
:mylabel
if -%save%-==-- goto cont
if -%1-==-.- goto :eof
if -%1-==-..- goto :eof
ren %1 %save%
:cont
set save=%1
goto :eof
C:\Projects>more 1.bat
FOR /L %%i IN (10000,-1,0) DO @2.bat %%i
C:\Projects>more 2.bat
@set /A J=%1+1
move solp%1.dat solp%J%.dat
Можно сразу список файлов в FOR получать, но это надо help for покурить хорошо.
FOR /L %%i IN (10000,-1,0) DO @2.bat %%i
C:\Projects>more 2.bat
@set /A J=%1+1
move solp%1.dat solp%J%.dat
Можно сразу список файлов в FOR получать, но это надо help for покурить хорошо.
я бы добавил проверку, существует ли файл
о... всё гениальное - просто.
А зачем два файла?
А зачем два файла?
А зачем два файла?welcome to *.bat world

welcome to *.bat worldразве под NT между *.bat и *.cmd есть какое-то отличие?
если в реестр залезть и нашкодничать там - будут.
если в реестр залезть и нашкодничать там - будут.Если уж на то пошло, топикстартер не сказал, что у него за ОС, может у него *nix, а слово "батник" он по привычке использует
Круто. =)
Мне понравилось
Мне понравилось
Работа единоразовая. Номера обычно от 1 до 9, но могут и двузначные появиться, отсутствие ведущих нулей - да, это проблема. Номера по порядку. Система Windows, так что батник не "по привычке".
Спасибо за посты, у меня тут у самого кое-какие идеи зашевелились, по моему даже проще можно, учитывая структуру имен (solpN.dat).
Только как сделать строчку 'solpN.dat', N - число, хранящееся в переменной I - вот так:
$filename$ = solp%%I.dat
?
Спасибо за посты, у меня тут у самого кое-какие идеи зашевелились, по моему даже проще можно, учитывая структуру имен (solpN.dat).
Только как сделать строчку 'solpN.dat', N - число, хранящееся в переменной I - вот так:
$filename$ = solp%%I.dat
?
Тебе уже почти рабочий вариант предложил.
Да, я просто проглядел его. Всё работает. Хелп как-нибудь покурю на досуге.
Мой сканер нумерует получаемые файлы как
Image$n.tif
при этом $n идет без лидирующих нулей.
1) удаляю Image посредством Multi Rename Tool в TC
2) прогоняю через вот такой скрипт:
for /F "usebackq delims=|" %%j in (`dir /b ?.*`) DO @move %%j 00%%j
for /F "usebackq delims=|" %%k in (`dir /b ?.*`) DO @move %%k 0%%k
Совершенно тупо, но работает
Image$n.tif
при этом $n идет без лидирующих нулей.
1) удаляю Image посредством Multi Rename Tool в TC
2) прогоняю через вот такой скрипт:
for /F "usebackq delims=|" %%j in (`dir /b ?.*`) DO @move %%j 00%%j
for /F "usebackq delims=|" %%k in (`dir /b ?.*`) DO @move %%k 0%%k
Совершенно тупо, но работает

Если TC использовать, то в том же Multi Rename Tool есть [C], который и прибавить единичку может, и лидирующие нули добавит. Правда такое прокатит, если нет пропусков в нумерации.
это да 
а если такую штуку надо провернуть в N директориях, то TC не сможет этого сделать. скрипту же пофигу.

а если такую штуку надо провернуть в N директориях, то TC не сможет этого сделать. скрипту же пофигу.
а если в одной директории, то умение TC работать с регэкспами не поможет?
не понял тебя.
есть N папок с файлами Image1.tif ... ImageKKKK.tif
как во всех папках с помощью TC привести файлы к виду ZZZZ.tif, где ZZZZ - порядковый номер внутри папки с лидирующими нулями.
есть N папок с файлами Image1.tif ... ImageKKKK.tif
как во всех папках с помощью TC привести файлы к виду ZZZZ.tif, где ZZZZ - порядковый номер внутри папки с лидирующими нулями.

галка "RegEx" не поможет (в одной папке)? Я ей не пользовался - хз, как именно они там реализованы, просто спрашиваю
Зачем тебе регулярные выражения? Тем более они применяются, как не трудно это видеть, в Search & Replace, которые ты не заполнил.
Сможет. Сперва поиск, Feed to listbox, Ctrl+M.
А дальше? список файлов и по ctrl+B получить можно, без всякого поиска.
Если нумерация сплошная, то Counter.
За Ctrl+B спасибо. Знал, но никогда не вспоминал, когда надо было.
За Ctrl+B спасибо. Знал, но никогда не вспоминал, когда надо было.
Я не просил сквозной нумерации через все каталоги.
фактически мне надо дописать лидирующие нули и только.
фактически мне надо дописать лидирующие нули и только.
Сортировка по имени. [N1-9]0[N10] и аналогично для 1, 2, 3 ведущих нулей.
Оставить комментарий
boginya
Имеется набор пронумерованных файлов: solp0.dat, solp1.dat, solp2.dat....Нужно написать bat-файл, который бы увеличил номер каждого файла на 1.
Подскажите, как это сделать, пожалуйста