Задать вопрос
@Evelate

Как в батнике делать уникальное сохранение без использования даты?

Нынешний код:
set dir1=C:\TEST\ScanTo\
set strTime=_%Date%_%Time%
set strTime=%strTime::=-%
set strTime=%strTime:,=-%
set strTime=%strTime:/=-%
%SYSTEMDRIVE%


Хочу чтобы сохранял:

скан_1
скан_2
скан_3
...

Допустим я удалил данные сканы и счётчик должен начать сначала, т.е. должна быть некая проверка в начале кода
Переменная strTime - это по сути счётчик с проверкой на уникальность
  • Вопрос задан
  • 80 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
fox_12
@fox_12
Расставляю биты, управляю заряженными частицами
Создайте файлик - например
count.txt
и там храните промежуточное значение для инкремента
Удалили сканы и надо начать сначала - удалите файлик.
Ответ написан
Комментировать
@Olgeir
если имена файлов различаются только номером и номер это постоянное количество цифр, т.е не скан_1, а скан_000001,скан_000002,скан_000003, тогда можно:
@echo off
for /f %%a in ('dir /b /o-n "скан_*.jpg"') do set tmp=%%a&goto lev1
:lev1
echo %tmp%
set /a next_file_num=%tmp:~-10,6% +1
set next_file_num_str=000000%next_file_num%
set next_file_num_str=%next_file_num_str:~-6%
set next_file_name=скан_%next_file_num_str%.jpg
echo %next_file_name%
Ответ написан
Комментировать
@yellowmew
Cloud infrastructure, monitoring engineer. SRE
Ваше "переменное" значение - количество файлов в папке.
@for /F %%a IN ('attrib.exe ./*.* ^|find /c /v ""') DO @set result=%%~a
@echo %result%

переменную result далее используйте как вздумается
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы