[CMD] Скриншоты и нумерация в BAT

Rinat Zaripov

Новый пользователь
Сообщения
10
Реакции
1
Здравствуйте.

Нужен BAT для скриншота, нумерации, и работа с папкой.
Пример:
- Сперва создаётся скриншот в папке, формата .png, далее, идёт нумерация: screenshot_0.png, screenshot_1.png, и т.д.
- Если например, сделано скриншотов 10 шт, далее, если нужно удалить или переместить такой порядок номер скриншотов: 1, 2, 3, 4, 5, и после 5 остались файлы с номером: 6, 7, 8, 9, 10, то нумерация идёт дальше от 10, так как screenshot_10.png последний снимок в папке с номером 10, и нумеруется так: 11, 12, 13, 14, и т.д.
- Если отсутствуют например, снимки с номером: 6, 7, 8, 9, 10, а остались 1, 2, 3, 4, 5, то нумерация идёт дальше от 5, так как screenshot_5.png последний снимок в папке с номером 5, и нумеруется так: 6, 7, 8, 9, и т.д.
- Когда есть такой порядок: 1, 2, 3, 6, 7, 8, например, то нумерация идёт дальше от 8, так как screenshot_8.png последний снимок в папке с номером 8, и нумеруется так: 9, 10, 11, 12, и т.д.
- Если будут все удалены или просто перемещены файлы .png из папки куда сохраняются скриншоты, то нумерация снова идёт заново с 0, и т.д.
- Скриншоты с нумерацией файлов сохраняются в отдельную папку, например, "скриншоты", в папке программы C:\Прога\скриншоты
- При отсутствии папки "скриншоты", происходит проверка, BAT определяет на отсутствие папки, если её нет в папке программы, то один раз её создаст. Это действие выполняется первым.
- Скриншоты с папкой и программой работают вне зависимости директории Windows.
- Когда BAT выполнит свой скрипт, он закроется при завершении.

Сможете помочь это сделать?

// Замечание модератора. Текст отредактирован по просьбе автора.
 
Последнее редактирование модератором:
Вам нужнен батник для перенумерации? По типу 1, 2, 6, 7 => 1, 2, 3, 4 ?
 
@Rinat просто из вашего описания не понятно. Вот у вас появился скриншот .png как понять, что его надо переименовывать, а какие нет?
Вот screenshot_5.png - это тоже скриншот .png, но его переименовывать не надо.
 
Если не пойму, что нужно, то и не смогу помочь.

CMD/BATCH:
@echo off
setlocal enableextensions enabledelayedexpansion

set max=0
for /f "tokens=1-2 delims=_" %%a in ('dir /b /a-d screenshot_*.png') do if "%%~nb" neq "" (if %%~nb GTR !max! set max=%%~nb)
set /a max+=1
move screenshot_.png screenshot_%max%.png

pause

Батник должен лежать рядом со скриншотами.
 
@regist Если например, в папке есть скриншот с названием и без номера, как screenshot_.png. Батник работает так: он сперва обнаруживает полное название файла screenshot_.png. Далее, если в папке есть screenshot_.png, то нумерует поочерёдно - screenshot_1.png, screenshot_2.png и т.д. Dragokas, сделал верно, только нумерация идёт от 1, а не от 0. Переименование идёт с нумерацией.
 
Если не пойму, что нужно, то и не смогу помочь.

CMD/BATCH:
@echo off
setlocal enableextensions enabledelayedexpansion

set max=0
for /f "tokens=1-2 delims=_" %%a in ('dir /b /a-d screenshot_*.png') do if "%%~nb" neq "" (if %%~nb GTR !max! set max=%%~nb)
set /a max+=1
move screenshot_.png screenshot_%max%.png

pause

Батник должен лежать рядом со скриншотами.
@Dragokas Да, то что надо! Пожалуйста, сделайте чтобы нумерация шла от 0, а не от 1? Ещё нужно так: Папка программы\скриншоты, то есть батник должен работать в Папке программы, но не в папке скриншотов. Только вот ещё добавил ожидание на 2 сек. перед выполнением, чуть изменил код. Правильно timeout размещён в пункте и записан?

CMD/BATCH:
@echo off
setlocal enableextensions enabledelayedexpansion

timeout /t 2 /nobreak >nul

set max=0
for /f "tokens=1-2 delims=_" %%a in ('dir /b /a-d screenshot_*.png') do if "%%~nb" neq "" (if %%~nb GTR !max! set max=%%~nb)
set /a max+=1
move screenshot_.png screenshot_%max%.png
 
Папка программы\скриншоты, то есть батник должен работать в Папке программы, но не в папке скриншотов.
Я не понимаю, что это означает. Куда положите, там и будет работать.
Правильно timeout размещён в пункте и записан?
без понятия.
 
Так?

CMD/BATCH:
@echo off
setlocal enableextensions enabledelayedexpansion

set "folder=скриншоты"

timeout /t 2 /nobreak >nul

set max=-1
pushd "%folder%"
for /f "tokens=1-2 delims=_" %%a in ('dir /b /a-d screenshot_*.png') do if "%%~nb" neq "" (if %%~nb GTR !max! set max=%%~nb)
set /a max+=1
move screenshot_.png screenshot_%max%.png
popd

Скрипт нужно сохранить в кодировке OEM-866.
UPD. Исправил.
 
Последнее редактирование:
@Dragokas Работает отлично! Можно чтобы была ещё доп. проверка? Если папка с названием "скриншоты" отсутствует, то чтобы создалась один раз. Эта проверка должна наверное работать до нумерации картинок. Чтобы типа код успевал срабатывать. Вам виднее, наверное, и как лучше. Сможете ещё и это помочь внести в батник?
 
Создать папку:
Код:
md "%folder%" 2>NUL
ну или в произвольном месте других ваших скриптов:
Код:
md "%~dp0скриншоты" 2>NUL
 
@Dragokas Нужно ещё кое что доработать. Нужно после чёрточки в таком содержании файла screenshot_0.png копировалась только цифра 0 в буфер обмена. Если появляется следующая последовательность screenshot_1.png, то копировать уже цифру 1, и так далее, чтобы любые все числа больших и малых содержания копировались. Помогите это доработать?
 
Что именно не работает?
После исполнения сценария в буфер попадёт число, соответствующее переименованному файлу.

Код:
@echo off
setlocal enableextensions enabledelayedexpansion

set "folder=скриншоты"

md "%folder%" 2>NUL
timeout /t 2 /nobreak >nul

set max=-1
pushd "%folder%"
for /f "tokens=1-2 delims=_" %%a in ('dir /b /a-d screenshot_*.png') do if "%%~nb" neq "" (if %%~nb GTR !max! set max=%%~nb)
set /a max+=1
move screenshot_.png screenshot_%max%.png
popd
echo %max%|clip
 
оффтоп
Добрый день! Уважаемые программисты.
не надо меня так захлопывать я же не муха там какая-нибудь и не комарик дохлой.
может быть, вам покажется даже невероятным, но все мухи со временем выздоравливают.
а мнение большинства по моему не всегда верно.

предлагаю улучшенный вариант.
добавлены новые функции, которые не попали в прошлые части моей программы.
по нескольким параметрам доработал
добавил показ списка после копи, если нужно выводить список, вместо параметра m=
вначале ? потом копи 2 после и список снова появится.
убрана задержка на инфу - вывод быстрее на enter.
вдобавок в саму инфу можно добавлять собственные командлеты
убрал привязку к дискам теперь все кеши свободно идут с любого диска.
помимо всего прочего добавил переключатель видов размера:
(размеры папок кеша показывает в 4 вариантах) полным выводом KB MB GB и коротким. и др.
есть новые функции о которых можно почитать в справке.
пожалуста ознакомтесь:
.
[ссылка удалена]
editor_cache v4.2 (7)
-
[ссылка удалена]

ряд моих программ.
данный планировщик чистки любого кеша как браузеров так и от системных мусора
работает по дням указанным в файле vbs
с выводом сообщалок перед самой чисткой.
туда включен напоминатель, который перед очисткой кеша дает подсказку, что
мол готов а на следующем входе убирает кеши.
отличие от стандартных чистильщиков что в них предлагаются папок 5-6 для уборки
можно указать сколько угодно папок без ограничений.
ТАКЖЕ работает без планировщика от запуска со стола.
есть ручная очистка в выбором папки указанной самим юзером.
удобная прога, когда на диске много хлама от разных кешей и не только кешей.
можно делать очистку своих папок в любое время со стола от ярлыка в цветном режиме окна cmd или в пустом окне без показа хода выполнения.
исправлена очистка временной папки TEMP.
cache 2.2 -
-
это грабер кеша.
предложил 6 прогрессов копирования из кеша.
берет любой кеш форматном и безформатный.
на данный момент все 6 прогрессов работают в норме.
глав. задача вынимать нужный кеш из браузера
преобразуя в графические форматы и потом на просмотр в папку
поддерживает любой тип кеша, такие как firefox xrom и соотвественно ie
кроме всего остального может сортировать по дате и размеру и паралельно вынимая
всю или частично графику и то что сортировано перегонит в папку.
еще и другие функции о которых можно почитать из справки.
также тащит видео флешки и многое другое.. что есть в онлайн кеше.
для удобства ввел возврат на исходный профиль по ум.
в общем менять папки профилей кеша теперь гораздо легче.
можно управлять прогрессом по своему усмотрению
можно удлиннить, укоротить символ прогресса и многое еще чего..
editor_cache v4.2
-
Ищет 0-байтовые файлы в режиме теста покажет протокол найденных
по ходу удалит по выбору юзера.
удобна тем что есть режим предосмотра перед удалялкой.
большое кол-во их создают некоторые редакторы что приводит постепенно к захламлению винчестира.
фактически продлевает работу диска.
BYTES-0-DEL
-
меняет значок папки и другие, как известно после добавки в реестр своих значков
клавиша F5 делает легкую встряску стола и по сути не меняет значок папки
эта прога решает такую задачу и любые значки за секунду можно установить бз лишних усилий.
другим словами эта прога со сменой на лету обходит ограничения F5.
кеш значков- 1.4
-
основная задача вынимать нужный кеш из браузера
преобразуя в графические форматы и потом на просмотр в папку
поддерживает любой тип кеша, такие как firefox xrom и соотвественно ie
кроме всего остального может сортировать по дате и размеру и паралельно вынимая
всю или частично графику и то что сортировано перегонит в папку.
еще и другие функции о которых можно почитать из справки.
также тащит видео флешки и многое другое.. что есть в онлайн кеше
убойный такой грабер.
всем рекомендую пошинковать на нем.
BB v4.3 (3) def-browser

я немножко плохо вижу без очков, поэтому если что не туда вписал прошу особо не винить.
благодарю.

Предупреждение
Предупреждение о нарушении правил форума, п.3.4 (читайте пояснение ниже)
 
Последнее редактирование модератором:
Добрый день! Уважаемые программисты.
Добрый день!

не надо меня так захлопывать я же не муха там какая-нибудь и не комарик дохлой.
может быть, вам покажется даже невероятным, но все мухи со временем выздоравливают.
а мнение большинства по моему не всегда верно.
Простите, а вы к кому обращаетесь?
У вас первое сообщение на форуме. Вас кто-то обидел в ЛС?

предлагаю улучшенный вариант.
ТС уже давно получил ответ на свой вопрос и был полностью им удовлетворён.

добавлены новые функции, которые не попали в прошлые части моей программы.
Какой прошлой части? Вы на этом форуме еще не выкладывали ни одну из своих программ.
Для представления своей программы на нашем форуме воспользуйтесь тематической веткой "Наши разработки".

Прежде, чем ваша работа может быть одобрена (и опубликована), она должна будет пройти наше ревью (анализ).
Но я наперёд скажу, что она не пройдёт, т.к. в ваших архивах содержится через чур много лишней информации (файлов). Оставьте минимум, создайте тему с нормальным описанием, по одной на каждую программу,

Предоставленные вами архивы выше будут удалены, т.к. требуют проверки, а это займет много времени в виду объма вашего скрипта, и просто нереального кол-ва файлов внутри.

Кроме того, прошу ознакомиться с правилами форума, в части осмысленных сообщений.
В данном случае ваш пост содержит "Список изменений", а не описание программы. Каким образом ей пользоваться, непонятно.

ряд моих программ.
Прошу ещё раз перечитать правила форума на счёт "оффтопа".
В одной теме допускается обсуждение только одного вопроса (в данном случае, вопроса от Rinat Zaripov).
 
Последнее редактирование модератором:
Назад
Сверху Снизу