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

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

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

vu1tur (27-04-2007 11:55): продолжаем в теме «Задачи на bat-файлах 3»  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 16:59 14-11-2006 | Исправлено: Elroir, 04:30 26-04-2007
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    Спасибо, проверил. Прекрасно работает в паре с taskkil, что и хотелось.
    Задача была в том, что-бы убить процесс, если он завис.
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 11:01 05-04-2007
    cluster

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребят, а как лог от нескольких команд в *.cmd писать в один файл? Типа:

    Код:
    Net stop "helpsvc" > C:\HaspRestarter.log
    Net start "helpsvc" > C:\HaspRestarter.log

    Так, чтобы не заменялся файл, а дописывался.

    Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 12:33 05-04-2007
    KapralBel



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

    Код:
    Net stop "helpsvc" > C:\HaspRestarter.log
    Net start "helpsvc" >> C:\HaspRestarter.log
     

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 12:46 05-04-2007
    GORA2



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    Спасибо за литературу, почитаю.
    А что там у Вас за файл ntldr.7z? Открываю архив а в нем скрытый файл без расширения. Что это такое?

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 14:45 05-04-2007 | Исправлено: GORA2, 15:04 05-04-2007
    NIKZZZZ



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

    Цитата:
    А что там у Вас за файл ntldr.7z

    Случайно попал, отношения не имеет.
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 19:08 05-04-2007
    netman



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите гуру...
     
    Формат вывода now.exe   Fri Apr 06 07:43:41 2007
     
    Хочу выципить первую субботу месяца . Как сделать?
    Вот накропал, все вроде работает:когда номер дня месяца больше семи то назначается  ключик %copyday% + когда меньше семи дней и попадает на субботу то назначается %copyfull%.
     
    А вот как бы сделать так ,что бы при дне месяца меньше 7 и когда не попадает на субботу ставился бы %copyday% ?????
     
     
    for /F "eol= tokens=1,2,3,4,5" %%a in ('now.exe') DO (echo %%a %%b %%c %%d %%e
    set WEEK=%%a
    set MONTH=%%b
    set DAY=%%c
    set TIME=%%d
    set YEAR=%%e  
    )
     
    if %DAY% GTR 7 (set copyswitch=%copyday%) else (if %WEEK%==Sat set copyswitch=%copyfull%)
     
    Заранее всем спасибо!
    Все разобрался.Надо добавить просто set copyswitch=%copyday% перед if.
     

    Всего записей: 305 | Зарегистр. 22-09-2003 | Отправлено: 07:51 06-04-2007 | Исправлено: netman, 08:03 06-04-2007
    GORA2



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужна помощь!
    Многие наверно знают про утилиту nircmdc и два ее ключа qbox, qboxcom позволяющие вывести окно с двумя кнопками.
    А как при запуске ее из батника получить назад результат (какая кнопка нажата)? Сделал так:
    Код:
    @echo off
    setlocal enabledelayedexpansion
    set Button=No
    nircmdc qboxcom "Нажмите любую кнопку" "Тест нажатой кнопки" execmd "echo Yes>Button.txt"
    nircmdc wait 1
    IF exist Button.txt del Button.txt & set Button=Yes
    echo Button: "!Button!"
    pause
    exit
    Может кто подскажет более изящный способ, без дополнительного файла.

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 08:23 06-04-2007
    Aizek1

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ошибки в скрипте "Использование даты на день раньше чем сегодня"
    http://forum.ru-board.com/topic.cgi?forum=62&topic=6156&start=1120#7
    в вин 2003 неверно рассчитается дата при системных датах  
    01.01.2007   - выдается 31.00.2007
    первый день любого месяца - выдается последний день текущего месяца но сам месяц будет предыдущим. 01.02.2007 - выдается 28.01.2007
    с 1 по 11 октября, ноября и декабря. - 02.11.2007 - выдается 1.11.2007 отсутствует нолик
     
    переписал скрипт так:

    Код:
     
    set T_Date=%DATE%
    IF %T_DATE:~0,1%==0 (
      SET /A T_DAY=%T_DATE:~1,1%) else (
      SET /A T_DAY=%T_DATE:~0,2%)
     
    IF %T_DATE:~3,1%==0 (
       SET /A T_MONTH=%T_DATE:~4,1%) else (
       SET /A T_MONTH=%T_DATE:~3,2%)
     
    SET /A T_YEAR=%T_DATE:~6,4%
     
    SET /A T_DAY=%T_DAY%-14
     
    :rc
    IF %T_DAY% LEQ 0 (
       SET /A T2_DAY=%T_DAY
       SET /A T_DAY=0
       SET /A T_MONTH=%T_MONTH%-1) else (
       SET /A T2_DAY=0)
     
    if %T_DAY%==0 (
       if %T_MONTH%==1 (Set /A T_Day=%T2_DAY%+31)
       if %T_MONTH%==2 (Set /A T_Day=%T2_DAY%+28)
       if %T_MONTH%==3 (Set /A T_Day=%T2_DAY%+31)
       if %T_MONTH%==4 (Set /A T_Day=%T2_DAY%+30)
       if %T_MONTH%==5 (Set /A T_Day=%T2_DAY%+31)
       if %T_MONTH%==6 (Set /A T_Day=%T2_DAY%+30)
       if %T_MONTH%==7 (Set /A T_Day=%T2_DAY%+31)
       if %T_MONTH%==8 (Set /A T_Day=%T2_DAY%+31)
       if %T_MONTH%==9 (Set /A T_Day=%T2_DAY%+30)
       if %T_MONTH%==10 (Set /A T_Day=%T2_DAY%+31)
       if %T_MONTH%==11 (Set /A T_Day=%T2_DAY%+30)
       if %T_MONTH%==12 (Set /A T_Day=%T2_DAY%+31)
       if %T_MONTH%==0 (
          set /A T_YEAR=%T_YEAR%-1
          SET /A T_MONTH=12
          set /A T_DAY=%T2_DAY%+31)
       )  
    )
     
    if %T_DAY% LEQ 0 goto rc
     
    if %T_MONTH% LSS 10 (
      if %T_DAY% LSS 10 (
        Set dt3=0%t_Day%.0%t_Month%.%t_Year%)  
      else Set dt3=%t_Day%.0%t_Month%.%t_Year%)  
    else (
      if %T_DAY% LSS 10 (
        Set dt3=0%t_Day%.%t_Month%.%t_Year%)  
      else Set dt3=%t_Day%.%t_Month%.%t_Year%)
     
    echo %dt3%
     

    теперь можно вычислять дату на n дней назад. в примере дата вычисляется на 14 дней назад

    Всего записей: 27 | Зарегистр. 06-07-2005 | Отправлено: 09:52 06-04-2007 | Исправлено: Aizek1, 12:09 06-04-2007
    NIKZZZZ



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

    Цитата:
    А как при запуске ее из батника получить назад результат (какая кнопка нажата)?


    Код:
    @echo off
    set Button=No
    nircmd qboxcom "Press any key" "Key test" xx >nul
    if %errorlevel%==0 set Button=Yes
    echo Key - %Button%
    pause

     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 10:35 06-04-2007
    GORA2



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

    Цитата:
    @echo off  
    set Button=No  
    nircmd qboxcom "Press any key" "Key test" xx >nul  
    if %errorlevel%==0 set Button=Yes  
    echo Key - %Button%  
    pause  
    Ваш вариант не сработал. При нажатии Да - выскакивает окно с версией nircmd и после его закрытия показывает Yes. При нажатии Нет все равно показывает Yes.
    Замена nircmd на nircmdс вроде работает, но... Что означает у Вас xx ? Может там что то надо прописать т.к. там по синтаксису должна быть команда nircmd?

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 12:21 06-04-2007 | Исправлено: GORA2, 12:37 06-04-2007
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GORA2
    XX или что-нубудь еще (HELP например) - команда, которую nircmd не понимает. И там должен быть nircmdс, просто он у меня переименован. При исполнении nircmdс с такой командой он выдает свой хелп, и устанавливает %errorlevel% в ноль.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 12:37 06-04-2007 | Исправлено: NIKZZZZ, 12:44 06-04-2007
    igor_andreev

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

    Цитата:
    А как при запуске ее из батника получить назад результат (какая кнопка нажата)?

    qbox и qboxcom сделаны в nircmd для внутренних команд nircmd. Сам не пользуюсь, потому как не люблю, когда батники меня о чем-то спрашивают , но если тебе нужен msgbox  в батнике для своих каких-то потребностей, то пользуй другие утилиты, вроде msgbox отсюда http://claudiosoft.online.fr/msgbox.html или другую msgbox отсюда http://www.otbsw.com/

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 12:57 06-04-2007
    JohnRD

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

    Цитата:
    Какой errorlevel возвращают эти команды (sc sdset ...), когда запускаются локально?

     
    локально проходило без ошибок..
    все решилось, sc.exe неправильный был, который я использовал, взял с XP engl все пошло.
     
    но все равно интересно локально все без- ошибок, удаленно- с ошибкой но все выполнял, дажне в лог писал что все хорошо...  
     
     
    подскажите как быстро воcставить дефолтовые шары C$ D$ ADMIN$ удаленно (psexec), если чел их постоянно тушит (батники и тд)  
     
    спасибо

    Всего записей: 205 | Зарегистр. 29-08-2004 | Отправлено: 13:51 06-04-2007
    slayer120



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите плиз разобраться
     
     for /F "tokens=1" %%l in ('net view \\server') do (
    rmtshare \\server\%%l
    ) | find /v "The command">>shares.txt
     
      Скрипт выдает все пермишенсы на шары в файл. Но проблема с русскими  
    шарами ("Какая то шара") в файло выдается такая строка
     
    Share name        \\server\Path              D:\Remark            
     
    Что надо поправить, чтобы правильно печаталось название шары на русском.

    Всего записей: 303 | Зарегистр. 24-01-2007 | Отправлено: 14:06 06-04-2007
    GORA2



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev
    Спасибо за ссылки, но я использую еще с десяток разных команд nircmd и пока не нашел ей замены (размер/количество команд).
    NIKZZZZ
    Все понял , спасибо. И еще вопрос. Нужно вывести информационное окно и, если кнопка не нажимается в течении определенного времени (10c), закрыть его. Делаю так:
    Код:
    start /b nircmdc infobox "INFO" "Title"
    nircmdc cmdwait 10000 killprocess nircmdc
    EXIT
    Но если нажать кнопку в окне, то оно закрывается, а процесс nircmdc и cmd продолжаются. Как это можно победить?

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 14:21 06-04-2007
    NIKZZZZ



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

    Код:
    set /a i=100
    start /b nircmdc infobox "INFO" "Title"
    :_1
    tasklist | find /i "nircmdc">nul
    if not %errorlevel%==0 goto _2
    set /a i=i-1
    nircmdc cmdwait 100
    if not %i%==0 goto _1
    nircmdc killprocess nircmdc
    :_2
    EXIT

     
     
     
    Добавлено:
    slayer120

    Цитата:
    Что надо поправить, чтобы правильно печаталось название шары на русском.

    Добавить в начало батника "chcp 1251".

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 18:24 06-04-2007
    netman



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

    Цитата:
    подскажите как быстро воcставить дефолтовые шары C$ D$ ADMIN$ удаленно (psexec), если чел их постоянно тушит (батники и тд)  

     
    net share admin$
    net share c$
    net share ipc$

    Всего записей: 305 | Зарегистр. 22-09-2003 | Отправлено: 19:44 06-04-2007
    Levitant



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Добрый вечер всем. (ну или что там у вас сейчас. )
    1. Есть подключение VPN. его надо запускать при загрузке. Подскажите как должен выглядеть бат фаил (если возможно) который бы запускал данное VPN соединение (имя: haz). Просто даже если на нем поставить галочку сохранять пароль, он его не сразу активизирует, а еще просит подтверждение (нажатие кнопки: применить). А хотелось бы вообще ничего не нажимать :%)
     
     
    Теперь вопрос для знающих. У cmd  есть функция nslookup "domain name". КОторая выдает ИП. Нужно просто ИП узнавать ОЧЕНЬ часто, и открывать / все полностью прописывать не охото. Можно ли создать батник, который бы уже показывал шаблон в командной строке nslookup, а лучше, что бы вообще какая нить приметивная форма вылазила бы, куда надо вбить только ДНС имя.
     
    Помогите с чем-нибудь.

    Всего записей: 62 | Зарегистр. 09-11-2006 | Отправлено: 19:51 06-04-2007
    alexVS



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужно удалить все файлы в текущем каталоге и подкаталогах кроме файла all.png
    Не получается.
     
    For /R %%i In (*.*) Do (
    if Not "%%i"=="all.png" (Del "%%i")
    )
     
    Что я не так написал?

    Всего записей: 608 | Зарегистр. 16-11-2002 | Отправлено: 19:57 06-04-2007
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    alexVS
    %%i - это путь+имя.
    %%~nxi - только имя.
     
     
     
     
    Добавлено:
    Levitant

    Цитата:
    Просто даже если на нем поставить галочку сохранять пароль, он его не сразу активизирует, а еще просит подтверждение (нажатие кнопки: применить).

     
    пуск-настройки-сетевые подключения-haz-свойства-параметры
    Убрать галку "Зaпpaшивaть имя, пapoль, cepтификaт и т.д."
     

    Цитата:
    Подскажите как должен выглядеть бат фаил (если возможно) который бы запускал данное VPN соединение (имя: haz).

     
    nircmdc.exe rasdial "haz"
     
    nircmd найдешь в шапке.
     
     
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 20:12 06-04-2007
       

    Страницы: 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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 2
    vu1tur (27-04-2007 11:55): продолжаем в теме «Задачи на bat-файлах 3»


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru