Итак, у меня есть очень простой сценарий, настроенный в планировщике задач для перемещения снимков экрана один раз в день из одной папки в другую. Это работает нормально, но когда снимки экрана сделаны, им автоматически присваивается имя в Steam, например, «Screenshot.png», «Screenshot 1.png», «Screenshot 2.png» et c в зависимости от того, сколько Папка. Таким образом, когда файлы очищаются в другую папку каждый день, каждый набор снимков экрана, сделанных в этот день, начинается снова с "Screenshot.png" и с этого момента go. В результате, когда они перемещаются, они будут либо перезаписывать, либо добавлять (1), либо что-то еще (не уверен, что, поскольку это еще не выполнялось!)
Так что я хочу изменить следующее Пакетный файл, чтобы найти наибольшее число в «Screenshot xxx.png» в папке назначения, добавьте его, переименуйте файл в исходной папке на этот номер, а затем выполните перемещение. Это должно вписаться в al oop, чтобы он мог go через все файлы в исходной папке.
@echo off
set X=1
set "source=C:\Users\Leigh\AppData\Local\Colossal Order\Cities_Skylines\Screenshots"
set "destination=D:\Leigh\Pictures\SkyLinesScreenshots"
robocopy "%source%" "%destination%" /mov
exit /b
Я проиграл и нашел скрипт, чтобы определить, каким должно быть следующее число, но не смог понять правильное выражение:
@echo off
setlocal enableextensions disabledelayedexpansion
setlocal enabledelayedexpansion
set "nextFile=0" & for /f "delims=" %%a in ('
findstr /b /r /x
/c:"\bScreenshot\b\s[0-9]+\.png"
') do if %%~na geq !nextFile! set /a "nextFile=%%~na+1"
endlocal & set "nextFile=%nextFile%"
echo Next file will be: %nextFile%
Если я получу это право, я объединю их вместе и решу проблему. Это довольно ясно, что нужно делать, так что кто-нибудь может дать мне правильное регулярное выражение, или даже больше, если они так сделают sh.
Заранее спасибо!