Имя: Пароль:
IT
 
батник 5 строчек, а ошибку не найду :(
0 Smallrat
 
31.05.13
15:45
Нид хелп!


if exist "c:\control\work.txt" (
   
   set minuteslim=3
   set  minutesdif=4

   if %minutesdif% GTR %minuteslim%  echo !!!!
   )


выдает:

Непредвиденное появление: echo.
if  GTR   echo !!!!

я уже забодался, причем иногда достаточно стереть первое условие, запустить - оно скажет !!!, потом вернуть все на место и всё будет работать, а потом перестает.
1 Базис
 
naïve
31.05.13
15:50
ЕМНИП  command.com не позволяет делать вложенные условия.
2 Smallrat
 
31.05.13
15:55
(1) ммм, странно как - вроде нигде про это не сказано, да и работает иногда. хотя чаще не работает.
3 Smallrat
 
31.05.13
16:20
(1) вынес вложенно условие через метку, вроде работает. Спасибо!
4 Jaap Vduul
 
31.05.13
16:27
Тут дело не во вложенности.
Просто команды в блоке выполняются не последовательно, а одновременно.
Поэтому получается, что в строчке if %minutesdif% GTR %minuteslim% переменные не инициализированы, отсюда и "Непредвиденное появление ...".
5 Ковычки
 
31.05.13
17:37
setlocal ENABLEDELAYEDEXPANSION
if exist "c:\control\work.txt" (
   
   set minuteslim=3
   set  minutesdif=4

   if !minutesdif! GTR !minuteslim! echo ^^!^^!^^!^^!
   )
6 Ковычки
 
31.05.13
17:59
без отложенной обработки

if not exist "c:\control\work.txt" goto next
   
  set minuteslim=3
  set  minutesdif=4

  if %minutesdif% GTR %minuteslim% echo ^^!^^!^^!^^!
:next
7 Smallrat
 
31.05.13
18:19
О как! а я то думаю - какого он пишет "if  GTR   echo !!!!" с пустыми значениями.
буду знать, спасиб!!!
Ошибка? Это не ошибка, это системная функция.