1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Как средствами батча отличить Win от DOS?

Тема в разделе "Hard & Soft", создана пользователем Jabberwock, 8 авг 2008.

  1. Jabberwock

    Jabberwock

    Регистрация:
    23 янв 2007
    Сообщения:
    359
    Как средствами батча отличить Win от DOS?
    Конкретная задача - с одного и того же батча запускать под винды DN/2, а под дос DN OSP.

    Я в последнее время разжирел и отупел, многое забыл.
     
  2. MetroidZ

    MetroidZ

    Регистрация:
    3 янв 2008
    Сообщения:
    2.291
    Вроде бы sfc есть только в Windows:

    sfc |find "SCANNOW" || start WINProgram.exe
    sfc |find "SCANNOW" && DOSProgram.exe
     
  3. Kristobal Hozevich Hunta Реликтовый гоминид

    Kristobal Hozevich Hunta

    Регистрация:
    24 апр 2006
    Сообщения:
    1.349
    Jabberwock, как установлены обе ОС?
     
  4. Jabberwock

    Jabberwock

    Регистрация:
    23 янв 2007
    Сообщения:
    359
    Просто Win98SE без автостарта win.com.
    Конфигсусные новороты, думаю, несущественны.
     
  5. MetroidZ

    MetroidZ

    Регистрация:
    3 янв 2008
    Сообщения:
    2.291
    а тот вариант с 'sfc' не прокатил?
    Вместо 'sfc' можно подобрать то, что будет работать только в Win. Не помню, что там было в 98-м. 'scanreg' может?
     
    Последнее редактирование: 8 авг 2008
  6. Jabberwock

    Jabberwock

    Регистрация:
    23 янв 2007
    Сообщения:
    359
    MetroidZ, досный вариант не срабатывает. (
     
  7. MetroidZ

    MetroidZ

    Регистрация:
    3 янв 2008
    Сообщения:
    2.291
    возможно для DOS надо чуть доработать, или каким то образом запускать его по - "иначе". Т.е. если не срабатывает "sfc |find "SCANNOW" || start WINProgram.exe" идет указатель на запуск DOS программы. Просто у меня нет сейчас DOS под рукой и не могу уточнить, какие команды в нем есть.
    Хе, а в нем и нет команды FIND похоже...
    Может, кто помнит как сделать переходы по условию...

    Реально в DOS так мало команд?
    http://detc.usu.ru/Assets/aCOMP0041/lectures/DOS-commands/index.html
     
  8. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    Вот, наваял на скорую руку...
     

    Вложения:

    • CheckWin.rar
      Размер файла:
      12,1 КБ
      Просмотров:
      44
  9. Kristobal Hozevich Hunta Реликтовый гоминид

    Kristobal Hozevich Hunta

    Регистрация:
    24 апр 2006
    Сообщения:
    1.349
    MisterGrim, у "пустышки" формат win32?
     
  10. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    Это dual-exe. DOS-часть возвращает 0, win-часть возвращает 1.
     
  11. MetroidZ

    MetroidZ

    Регистрация:
    3 янв 2008
    Сообщения:
    2.291
    А такое (без доп. "пустышек") будет работать?


    @echo off
    sfc |find "SCANNOW" || goto win
    echo DOS
    DosProgram.exe
    goto exit
    :win
    echo Windows
    WinProgram.exe
    :exit


    Или в DOS ошибка стопорит?
     
  12. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    Кстати, работает. Только вместо SFC лучше бы выбрать что-нибудь другое, не выводящее мусор на экран.
     
  13. Kristobal Hozevich Hunta Реликтовый гоминид

    Kristobal Hozevich Hunta

    Регистрация:
    24 апр 2006
    Сообщения:
    1.349
    MisterGrim, хм, отстал от жизни, блин =)
     
  14. MetroidZ

    MetroidZ

    Регистрация:
    3 янв 2008
    Сообщения:
    2.291
    команда FIND отыскивает из этого мусора ключевое слово "SCANNOW" :)
    При обнаружении - выбор WIN, иначе - DOS, т.к. прога SFC характерна для Win98-WinXP (и может быть Vista). Наверняка в 98-й можно найти прогу или способ с менее болтливым диалогом.
     
    Последнее редактирование: 8 авг 2008
  15. John Freeman

    John Freeman

    Регистрация:
    13 май 2004
    Сообщения:
    14.241
    @if "%OS%"=="Windows_NT" echo WIN

    Закончили дебилизм, всем незачёт. Для 9х будет по-моему просто Windows
     
  16. дядя Лёша

    дядя Лёша

    Регистрация:
    27 фев 2006
    Сообщения:
    3.285
    Если используется стандартное меню при загрузке, то простенько вот так:

    if %config%="имя DOS секции в вашем config.sys" goto "секция загрузки DN/2"
    if %config%="имя WIN секции в вашем config.sys" goto "секция загрузки DN OSP"
    А дальше всё понятно.
     
  17. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    А вот нет там такой переменной.
     
  18. John Freeman

    John Freeman

    Регистрация:
    13 май 2004
    Сообщения:
    14.241
    MisterGrim, извини, клинику не лечим, там есть другие вроде winbootdir(с 9х) или windir(с 3.x). И уж подавно парзить вывод sfc в твоём методе - МЕГАТУПИЗМ, есть ver!

    Не осилил - не лезь!
     
  19. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    John Freeman, в каком ещё моём методе. Внимательнее надо быть.
     
  20. MetroidZ

    MetroidZ

    Регистрация:
    3 янв 2008
    Сообщения:
    2.291
    Сравнение сработает только при полном совпадении переменной. А FIND найдет и частичное совпадение по ключевому - WINDOWS. Поэтому FIND - не повредит нигде.
    Что выдаст команда VER в RU и EN XP?

    John Freeman,
    да и скажи, например, как в BAT без дебилизма сделать задержку на 5 сек.?
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление