1. Куча / Говнокод #1801

    +100.1

    1. 1
    ping -n 5 localhost > nul

    К сожалению в Windows не предусмотрено никаких штатных команд для организации задержки, поэтому для того, чтобы в скрипте реализовать задержку в n секунд, например чтобы дождаться пока процесс завершится и освободит ресурс, приходится или качать/писать сторонние утилиты или прибегать к подобной чёрной магии.

    Запостил: Sauron, 09 Сентября 2009

    Комментарии (8) RSS

    • вместо того чтобы срать гавном скачай windows 2003 resource kit
      Ответить
      • Не забывай, сей скрипт необходим был для свободно распространяемой программы ибо нужно было совершить действие с ресурсами программы (тупо перезаписать пару её либ). А так как во время работы венда не дает перезаписывать используемые программой библиотеки, то перезаписать их можно только завершив программу и вызвав скрипт, который бы выполнил нужные мне действия. Посему вариант с resource kit не годится в силу того, что это лишняя и никому ненужная зависимость, а таскать с собой ещё и костыли для Венды это уж увольте.
        К счастью потом я нашел более элегантный хак для обхода этой проблемы: оказалось, что заблокированые либы можно перемещать в другое место,а на старое спокойно класть обновлённые версии.
        Думаю каждый, кто пытался написать для венды автообновлялку приложения срал подобными кирпичами в адрес мелкомягких
        Ответить
        • какие кирпичи, ты ачем? ты не знал что замена залоченного файла спокойно делается через переименовывание? ну в таком случае жаль тебя расстраивать, но срать пришлось только тебе :) остальные это какбэ знали
          Ответить
          • Ну и разве переименование это не костыль полуторометровый? Блин в нормальных системах это без труда делается, а вот как пытаешься этот же код на винде использовать то получаешь ворох проблем и гемморой на всю пятую точку и кучу #ifdefов которые весь стиль кода портят.
            Далее, переименованные файлы так или иначе нужно удалить и тут приходится опять же батник на лету генерить, который через определенное время после завершения породившего его процесса удаляет файлы или при следующем запуске приложения очищать.
            Вот именно такие архитектурные просчёты и заставляют делать столь же некрасивые способы их обхода
            Ответить
        • В таких случаях обычно делается цикл из попыток и goto на начало при неудаче
          Ответить
    • одно название йазыка о многом говорит ....
      Ответить
    • команда timeout курите доки
      Ответить

    Добавить комментарий