Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Sisin

Старожил


Сообщения: 345
Благодарности: 9

Профиль | Отправить PM | Цитировать


Перед предложенными вариантами в батнике выполняется некая Startprogram.exe, которая создает log210, log211, log212 и т.д.
Как сделать, чтобы в начале предложенных вариантов проверялось создала ли Startprogram.exe новый файл или нет?
т.е., например, запускается батник, запоминается, что последний файл в папке "C:\11\" log212, далее start /wait "" "Startprogram.exe", далее проверяется появился новый файл log213, если нет - то выход, если да - то запускаются вышепредложенные варианты:

Вариант 1
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFolder=C:\11
set sMask=log*.

if exist "%sSourceFolder%\." (
	for /f "usebackq delims=" %%i in (`2^>nul dir /b /a:-d /o:d /t:c "%sSourceFolder%\%sMask%"`) do (
		set sLastFile=%%~i
	)
	
	if defined sLastFile (
		"Program.exe" /F "%sSourceFolder%\!sLastFile!"
	) else (
		echo Nothing found.
		exit /b 2
	)
) else (
	echo Can't find source folder [%sSourceFolder%].
	exit /b 1
)

endlocal
exit /b 0


Вариант 2
Код: Выделить весь код
@Echo On
cls
	Set "Mask=log*."
	Set "BoxIn=C:\11"

	Set "Prg="Program.exe" /F "%BoxIn%\%%f" /D "%BoxIn%" /DW"
	
	FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\%Mask%" /B /A:-D /O:-D /T:C`) DO (
		Start " " %Prg%
		Exit /B
	)
	Echo !!! Folder Or Files "%BoxIn%\%Mask%" not found
Exit /B 1

Отправлено: 12:57, 14-05-2019 | #13