Ламерский вопрос по cmd.exe

Тема в разделе "WASM.BEGINNERS", создана пользователем test555, 27 сен 2009.

  1. test555

    test555 New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2007
    Сообщения:
    241
    Есть рабочий бат файл:

    Код (Text):
    1. :r
    2. del "c:\calc.exe"
    3. if exist "c:\calc.exe" goto r
    Если запустить калькулятор, и потом этот батник, то батник будет работать пока не закроется калькулятор, потом удалит файл. (это взято из изветсного способа самоудаления файла).

    Хотел сделать то же, но без создания файла, но код типа

    Код (Text):
    1. cmd.exe /c ":r&&del "c:\calc.exe"&&if exist "c:\calc.exe" goto r"
    Не робит.
    Спотыкается на метке или последней команде.. Если вставить несколько простых команд типа пинга или эхо, то работает.
    Вот не могу догнать, можно ли сделать все с одной строки без создания файла.

    Нет - так нет... А если можно - то клево.
    Маны смотрел, хелп читал, что-то не помогло мне...

    благодарствую.
     
  2. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    кавычки сила
     
  3. test555

    test555 New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2007
    Сообщения:
    241
    max7C4, можно рабочий пример?
    Пробовал ставить метку в кавычки, ругался что-то типа "файл или папка не найдены"..
     
  4. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    кавычки в кавычках. это не нормально.
     
  5. test555

    test555 New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2007
    Сообщения:
    241
    max7C4, код в студию!!

    Я все варианты перепробовал, маны покурил.

    Либо вы говорите, не проверив?
     
  6. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    думаю, проблема в метке
     
  7. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    пакетные файлы для того и придуманы чтоб добавить возможность структурированя команд в циклы, условные переходы и прочее - комадная строка всех этих фокусов не поддерживает
     
  8. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    Код (Text):
    1. Вариант1:
    2. for /L %i in (0,0,0) do @((@if not exist "C:\calc.exe" exit)  &  @del "C:\calc.exe")
    3.  
    4. Вариант2:
    5. for /L %i in (0,0,0) do @((@if not exist "C:\calc.exe" exit)  &  @del "C:\calc.exe"  &  @ping -n 1 -w 2000 1.1.1.1)
    Вариант3:
    Сделать без cmd: создать ещё один процесс, который будет ждать завершения текущего, например.
     
  9. test555

    test555 New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2007
    Сообщения:
    241
    Sol_Ksacap, благодарю! То что нужно!!