joker56
Цитата:
и поаккуратнее с пробелами -
ping localhost -n 11 >nul и ping localhost -n 11>nul
- не на всех системах сработают одинаково.
но тут ещё я виноват, надо было не лениться и сразу писать
1>nul ping localhost -n 11
Цитата:
перейти к тому что предлагалось в начале и что делал Res
в отвязанном от региональных и языковых настроек варианте оно выглядит заметно более громоздко:
Код: @echo off
call:_size "c:\1\*.log"
:loop
1>nul ping localhost -n 11
set "_oldsize=%_newsize%"
call:_size "c:\1\*.log"
if %_oldsize% neq %_newsize% echo start "" c:\2.exe & goto :loop
echo start "" c:\3.exe
goto :loop
:_size
for /f "tokens=3*" %%a in ('dir "%~f0"') do set "dir_txt=%%b"
for /f "tokens=3" %%s in ('dir /a-d %1 ^| findstr /b /c:" " ^| find /v "%dir_txt%" ') do set "dir_txt=%%s"
for /f "delims=0123456789" %%a in ("%dir_txt% ") do 1>file.txt call set "_newsize=%%dir_txt:%%a=%%"
exit /b
Цитата:
( я правильно понял, что число 11 в строчке ping означает задержку в секундах?).почти правильно - это число должно быть на 1 больше чем нужная величина задержки в секундах.
и поаккуратнее с пробелами -
ping localhost -n 11 >nul и ping localhost -n 11>nul
- не на всех системах сработают одинаково.
но тут ещё я виноват, надо было не лениться и сразу писать
1>nul ping localhost -n 11
Цитата:
Единственное, что мне нужно уточнить - следить придется не за размером одного файла test.log а за размером всей папки C:\1 потому что программа, за которой надо следить, может создавать в этой папке новые файлы *.log, а отслеживать их нет смысла, да и гораздо сложнее, и размер .bat тоже критичен. Как изменить текст с этой целью?
перейти к тому что предлагалось в начале и что делал Res
в отвязанном от региональных и языковых настроек варианте оно выглядит заметно более громоздко:
Код: @echo off
call:_size "c:\1\*.log"
:loop
1>nul ping localhost -n 11
set "_oldsize=%_newsize%"
call:_size "c:\1\*.log"
if %_oldsize% neq %_newsize% echo start "" c:\2.exe & goto :loop
echo start "" c:\3.exe
goto :loop
:_size
for /f "tokens=3*" %%a in ('dir "%~f0"') do set "dir_txt=%%b"
for /f "tokens=3" %%s in ('dir /a-d %1 ^| findstr /b /c:" " ^| find /v "%dir_txt%" ') do set "dir_txt=%%s"
for /f "delims=0123456789" %%a in ("%dir_txt% ") do 1>file.txt call set "_newsize=%%dir_txt:%%a=%%"
exit /b