Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 9

Модерирует : KLASS, IFkO

vu1tur (09-01-2011 11:53): лимит страниц, продолжение — http://forum.ru-board.com/topic.cgi?forum=62&topic=22143  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

vu1tur



Moderator-Saaber
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Задачи на bat-файлах 9
(часть 1, часть 2, часть 3, часть 4, часть 5, часть 6, часть 7, часть 8)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
 
Для перекодирования кирилицы 866<—>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы

 
Дополняем шапку: добавляем готовые решения, полезные ссылки.
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Программы » Командная строка, батники\сценарии
 
Полезные ссылки
 
Полезные утилиты
 
Готовые решения и частые вопросы:
  • Встроенный справочник по командам
  • Создание помощи по всем командам консоли 2000 и XP
  • Делаем паузу в командном файле стандартными средствами Windows
  • Альтернативные решения »
  • Работа с текстом, датой, и файлами »
  • Администрирование, автоматизация и сеть »
  • Работа с переменными и параметрами ком. строки »
     
    Описания работы команд и символов участниками темы:
    · setlocal enabledelayedexpansion и переменные окружения
    · символы & и && в командной строке
    · Переменная %0

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 17:45 04-09-2010 | Исправлено: Accessor, 18:04 28-09-2010
    andrew1692

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bomzzz
    цель такая, проверить через реестр текущую версию ОС
    HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion ключ CurrentVersion
    если в нем 5.1 надо запустить 1.exe, а если 6.1 то 2.exe

    Всего записей: 1980 | Зарегистр. 31-10-2008 | Отправлено: 21:36 17-09-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:

    ECHO OFF
    COLOR 9F
    CLS
    FOR /F "SKIP=4 delims=*" %%I IN ('REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CurrentVersion') DO SET WVersion=%%I
    echo %WVersion:~26%
    SET WVersion=%WVersion:~26,29%
    if %WVersion%==5.1 (
    1.exe
    goto :eof
    )
    if %WVersion%==6.1 (
    2.exe
    goto :eof
    )
    echo UNKNOWN VERSION
    pause

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 21:43 17-09-2010 | Исправлено: bomzzz, 21:50 17-09-2010
    andrew1692

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bomzzz
    объясни, пожалуйста, что охзначают ~26% и ~26,29%
    и еще, ка я понял вместо ааааааааа и ввввввввв надо прописать имена экзешников?

    Всего записей: 1980 | Зарегистр. 31-10-2008 | Отправлено: 21:45 17-09-2010
    ComradG



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    andrew1692
    Ключи наизусть реестра не помню, но чо-то вроде:

    Код:
    @echo off
     setlocal
      for /f "tokens=1,2,*" %%i in ('2^>nul reg query^
       "hklm\software\microsoft\windows nt\currentversion"') do (
       if %%i==СSDVersion set p=%%k
      )
      if "%p%"=="5.1" 1.exe
      if "%p%"=="6.1" 2.exe
     endlocal
    exit /b


    Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 21:47 17-09-2010 | Исправлено: ComradG, 21:52 17-09-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    andrew1692
    осначают вырезать кусок строки от 26 символа сначала до 29 с начала

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 21:48 17-09-2010
    andrew1692

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bomzzz

    Цитата:
    ECHO OFF  
    COLOR 9F  
    CLS  
    FOR /F "SKIP=4 delims=*" %%I IN ('REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CurrentVersion') DO SET WVersion=%%I  
    echo %WVersion:~26%  
    SET WVersion=%WVersion:~26,29%  
    if %WVersion%==5.1 (  
    1.exe  
    goto :eof  
    )  
    if %WVersion%==6.1 (  
    2.exe  
    goto :eof  
    )  
    echo UNKNOWN VERSION  
    pause  

    не работает
     

    Всего записей: 1980 | Зарегистр. 31-10-2008 | Отправлено: 21:58 17-09-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    я не знаю как выглядит строка на 6.1 у меня 5.1, на 5.1 будет рабокать на 6.1 надо проверять

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 21:59 17-09-2010
    SLIDER999

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ребята, нужно перекодировать текст из ANSI в UTF 16-le с BOM через cmd.
    делаю так:

    Код:
    <Nul >Runss.xml Set /P $VAR=яю
    recode cp1251..utf16-le <1.tmp >>Runss.xml

    В ХР работает а в 7 нет
    Может есть альтернативные варианты и более простые?
    Где recode - програмулина не помню где взял (recode-bugs@iro.umontreal.ca)

    Всего записей: 261 | Зарегистр. 16-03-2005 | Отправлено: 21:59 17-09-2010 | Исправлено: SLIDER999, 21:59 17-09-2010
    andrew1692

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bomzzz
    ну на 6.1 не хочет отрабатывать

    Всего записей: 1980 | Зарегистр. 31-10-2008 | Отправлено: 22:01 17-09-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
     
    у меня работает. подправь
     
    Добавлено:
    andrew1692
    а я тебе че сделаю, я не знаю как на 6.1 строка выглядит. посматри как строка выглядит и исправь батник

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 22:01 17-09-2010
    ComradG



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SLIDER999
    Заморачиваться с подобным через cmd сродни мазохизму, уже разбирал, так что лучше воспользуйся powershell'ом.

    Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 22:05 17-09-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    без обрезания строки сделай, полную строку сравнивай. а на 6.1 может номер строки другой

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 22:15 17-09-2010
    prrr

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    del

    Всего записей: 58 | Зарегистр. 16-08-2010 | Отправлено: 22:23 17-09-2010 | Исправлено: prrr, 22:24 17-09-2010
    faithful



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    andrew1692

    Цитата:
    цель такая, проверить через реестр текущую версию ОС  
    HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion ключ CurrentVersion  
    если в нем 5.1 надо запустить 1.exe, а если 6.1 то 2.exe

    А чем плоха команда ver?

    Всего записей: 240 | Зарегистр. 09-09-2005 | Отправлено: 22:55 17-09-2010
    BVV63



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    andrew1692

    Код:
    For /F "Delims== Skip=2 Tokens=2 UseBackQ" %%0 In (`WMIC.Exe OS Get Version /Value`) Do Set OSVersion=%%0
    If "%OSVersion:~0,3%"=="5.1" 1.Exe & GoTo :EOF
    If "%OSVersion:~0,3%"=="6.1" 2.Exe & GoTo :EOF

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 08:02 18-09-2010 | Исправлено: BVV63, 08:04 18-09-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    У меня задача сродни вышеописанной:
    нужно экранировать значение параметра "KeyManagementServiceName" ключа "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform". Полностью ветка выглядит так:

    Код:
    REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v KeyManagementServiceName

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 09:00 18-09-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    че значит экранировать

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 09:09 18-09-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    вывести через echo значение параметра

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 09:12 18-09-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ECHO OFF
    COLOR 9F
    CLS
    FOR /F "SKIP=4 delims=*" %%I IN ('REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v KeyManagementServiceName ') DO echo %%I
     
    pause
     
    у меня такого параметра нету
     
    Добавлено:
    REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v KeyManagementServiceName
    оно и так выведется

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 09:28 18-09-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    не выводится. И потом мне нужно только значение параметра, т.е. чтобы до него вся ветка не выводилась

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 09:37 18-09-2010
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 9
    vu1tur (09-01-2011 11:53): лимит страниц, продолжение — http://forum.ru-board.com/topic.cgi?forum=62&topic=22143


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru