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

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

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

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

   

vu1tur



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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:54 27-04-2007 | Исправлено: Elroir, 03:59 10-09-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    king_stiven
    Попытайся запустить xcopy a: b: /c
     

    Цитата:
    /C           Продолжает копирование, даже если произошла ошибка.

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 23:07 16-08-2007
    paveltr



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Tipulatoid
    Цитата:
    Да, и замечание по коду: зачем создавать лишний темповый файл и потом его потирать? Лучше так:

    Резонно! Пасибо, так и сделаю!
     
    01MDM
    Цитата:
    wmic /?  

    Про это не знал, буду копать, спасибо!
     
    KapralBel
    Задача как раз сделать всё по-простому, штатными средствами. За подсказку спасибо.
     
    Спасибо всем откликнувшимся! Выручили
     
     

    Всего записей: 18 | Зарегистр. 01-04-2006 | Отправлено: 00:17 17-08-2007 | Исправлено: paveltr, 00:18 17-08-2007
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    paveltr
    Чтобы преобразовать результат из байт в мегабайт нужно просто удалить последние 6 цифр.

    Код:
    set free=%%a  
    set free=%fre:~0,-6%  

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Зарабатывайте просто читая письма. Все спонсоры на одной странице,
    регистрируйтесь у всех сразу. Писем будет много. http://forum.ru-board.com

    Всего записей: 2 | Зарегистр. 16-08-2007 | Отправлено: 03:13 17-08-2007 | Исправлено: vu1tur, 12:42 17-08-2007
    mbku

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте всем.
     
    Вопрос1.
    Как создать сообщение в несколько строчек при помощи утилиты hs_message. Можно привести просто пример и будет ясно. Главное, чтоб сообщение было в несколько строчек.
     
    Вопрос2. Можно ли сделать, чтоб bat-ник запускался при каждом обращении к моему компьютеру с другого компьютера?
     
    Вопрос3. Есть ли утилиты или команды сравнения файлов, которые можно использовать в bat-никах? Про команды Comp и fc я знаю, но что-то мне они не очень нравятся.
     
    Вопрос4. Нигде нельзя скачать бесплатно перекодировщик файлов. (из одного формата в другой)? Перекодировщик, чтоб тоже можно было использовать в bat-никах.
     
    Вопрос5. Негде нельзя скачать бесплатно утилиту поиска файлов по содержимому, при этом файлы не только текстовые но и word-ие.

    Всего записей: 26 | Зарегистр. 03-08-2007 | Отправлено: 04:19 17-08-2007
    dardreams



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

    Цитата:
    sc \\Srv1 config messenger start= demand

    Если честно я не понял как это должно работать ?
    Я хотел бы например запустить блокнот на удаленной машине. как это сделать с помощью твоего совета ?

    Всего записей: 100 | Зарегистр. 29-05-2007 | Отправлено: 07:41 17-08-2007
    Maza Faka



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

    Цитата:
    запустить блокнот на удаленной машине

    А чем не устраивает "PSEXEC.EXE"? Ну нельзя штатными средствами запустить приложение на удалённой машине, много раз уже об этом сказано!

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 07:53 17-08-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    dardreams
    Сорри, в запарке решил что спрашиваешь опять про службу но на удаленном компе
     

    Цитата:
    Я хотел бы например запустить блокнот на удаленной машине

    Я бы сделал так
    Создал на удаленном компе нужный батник (хотя в этом случае и не требуется)
    А потом через AT сделал бы запуск по расписанию
     
    ЗЫ. была утилита, которая позволяет создать задание на запуск через 2,3 и т.д минут
    Вот только забыл её имя

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 07:57 17-08-2007
    dardreams



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    KapralBel
    Есть тогда вариант попроще, можно вообще через сервис srvany сделать,но я хотел попроще именнот как в команде psexec там для запуска требуется всего вот такая строка

    Код:
                     
    psexec \\192.168.0.1 notepad.exe              
     

    Как думаешь можно ли чтонить найти похожее (только стандартное)?
     
    Добавлено:

    Цитата:
    А чем не устраивает "PSEXEC.EXE

    надо с собой носить постоянно.
    Я вот например пользбовался также psservice , оказывается её можно заменить на SC
     
    Добавлено:
    Скажите а можно радактировать %%a такие переменные ?
    Вот пнапрмер если переприсвоить то можно.
    <code>
    set x=%%a
    echo %x:~1,2%
    </code>
    Можно тоже самое делать просто с переменной %%a ?

    Всего записей: 100 | Зарегистр. 29-05-2007 | Отправлено: 08:03 17-08-2007
    igor_andreev

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

    Цитата:
    ЗЫ. была утилита, которая позволяет создать задание на запуск через 2,3 и т.д минут  
    Вот только забыл её имя

    soon.exe http://www.microsoft.com/downloads/details.aspx?familyid=ca8191e6-9eef-4975-b51c-8d670748ca8e&displaylang=en

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 09:27 17-08-2007
    dardreams



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

    Код:
     
    @echo off
    :ip
    cls
    col 10
    hs_echo "Input ip: "
    col 13
    set /p ip=
    @ping -n 1 %ip%>nul
    if errorlevel 1 (col 12&&echo Ping request could not find&&echo Please check the name and try again...&&delay 3000&&goto :ip)
    col 10
    hs_echo "Input Command: "
    col 13
    set /p Command=
    col 10
    for /f "tokens=8" %%i in ('net time \\%ip% ^|find "Local"') do set netTime=%%i
    set /a newMin= %netTime:~3,5%+1
    set hour=%netTime:~0,3%
    at \\%ip% %hour%%newMin% /interactive %command%>nul
    col 11
    at \\%ip%
    col 10
     

    Вот так я решил эту задачу
     
    Добавлено:
    Может кто помочь сократить код ? кроме "hs_echo" & "col"

    Всего записей: 100 | Зарегистр. 29-05-2007 | Отправлено: 09:39 17-08-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    dardreams
    Если задача стоит в том что выждать некоторое время после загрузки и обновить время с интернета (а выждать - что бы успело подсоединиттся к интернету) то у меня короче
     

    Код:
    eventtriggers.exe /create /eid 20158 /tr Internet_on /tk C:\CheckTime.cmd

    Этог создаешь триггер, который будет следить за кодом 20158 в журнале событий
    (это соединение с Remote Access)
     
    а в батничке только синхронизация времени

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:03 17-08-2007
    dardreams



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    KapralBel
    Мне до тебя еще далеко ... КРуто не чего сказать !
    А что насчет
    Цитата:
    Скажите а можно радактировать %%a такие переменные ?  
    Вот пнапрмер если переприсвоить то можно.  
     

    Код:
     
    set x=%%a  
    echo %x:~1,2%
     

     
    Можно тоже самое делать просто с переменной %%a ?


    Всего записей: 100 | Зарегистр. 29-05-2007 | Отправлено: 10:08 17-08-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    dardreams
    А зачем её разбирать на составляющие
    Ты правильно делаешь - присвоил нормальной переменной и делай с ней что хошь
     
    Не ищи трудности - иди самым простым способом

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:15 17-08-2007
    dardreams



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

    Всего записей: 100 | Зарегистр. 29-05-2007 | Отправлено: 10:30 17-08-2007
    slayer120



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уважаемые подскажите плиз как можно получить номер текущей недели.
     Нужно создать батник , пишущий некие файлы в каталоги соответствующие номеру недели в месяце. Может есть какие то проги.
      С помощью планировщикаможно сделать но как получить номер недели?

    Всего записей: 303 | Зарегистр. 24-01-2007 | Отправлено: 10:34 17-08-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    dardreams
    Не знаю, и пробовать не хочу
    Смысла нет
    Если бы сократило кучу строк - то да, а так только 1 строку (Set x=%%a)
     
    Добавлено:
    slayer120
    Проще написать программу, которая будет возвращать по ЕррорЛевел - номер недели, чем полный разбор в батнике
     
    Вообще представляю так
    Получается день недели - пн,вт,ср и т.д
    Получается число месяца
    Потом по дню недели выбирается последний день 1- недели
    и последовательно прибавляя 7 смотрим - текущая дата уже меньше полученой

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:35 17-08-2007
    Tipulatoid



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

    Код:
    @echo off
    setlocal enabledelayedexpansion
    for /f "tokens=1 delims=." %%a in ('echo %date%') do set curr_day=%%a
    for /l %%a in (1,7,%curr_day%) do (
      set /a week_num+=1)
    echo %week_num%

     
    В переменной %week_num% сохранен номер недели от начала текущего месяца.
    Работать будет если на компе по команде echo %date% дата выводится в формате dd.mm.yyyy Если не так. сообщи, поправлю код.

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 10:54 17-08-2007 | Исправлено: Tipulatoid, 10:57 17-08-2007
    slayer120



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Tipulatoid
      Спасибо работает. Вставлю в свой батник проверю.  
      То что нужно было. Я хотел использовать линуксовый date
    из Unxutils.

    Всего записей: 303 | Зарегистр. 24-01-2007 | Отправлено: 11:11 17-08-2007
    Tipulatoid



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

    Цитата:
    Спасибо работает.

    Пожалуйста . Сейчас обнаружил ошибку в своем коде если дата меньше 10. Правильный код такой:

    Код:
    @echo off
    for /f "tokens=1 delims=." %%a in ('echo %date%') do set curr_day=%%a
    if %curr_day:~0,1%==0 set curr_day=%curr_day:~1,2%
    for /l %%a in (1,7,%curr_day%) do (
      set /a week_num+=1)
    echo %week_num%


    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 11:18 17-08-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

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


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru