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

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

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

KLASS (06-03-2018 00:44): Объединение тем по сценариям: Сценарии Windows
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

hErAx

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

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

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

  • Отправлено: 01:53 25-10-2015 | Исправлено: Paromshick, 21:51 18-12-2017
    GCRaistlin



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

    Код:
     
    setlocal enabledelayedexpansion
    echo !str!
     


    ----------
    Magically yours
    Raistlin

    Всего записей: 3962 | Зарегистр. 18-04-2005 | Отправлено: 18:35 16-02-2017
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    PG7
    Цитата:
    set TestVar=123;456;789
    echo %TestVar%

    >123;456;789

    Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 18:37 16-02-2017
    tramparamparam02



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, есть ли команда или небольшая внешняя утилита, которую я бы мог запускать по расписанию (через системный планировщик) доя озвучивания вслух голосом текущего системного времени, скажем, каждые полчаса.
    Подозреваю, что ответ отрицательный, но вдруг есть какое-то решение.
     
    Спасибо!
     
    P.S.
    Есть немало программ, которые умеют такое делать, например, хорошо известный на просторах рунета Chameleon clock. Но это, в основном, тяжёлые комбайны, а мне нужно что-нибудь лёгкое.

    Всего записей: 2371 | Зарегистр. 30-03-2016 | Отправлено: 21:04 20-02-2017 | Исправлено: tramparamparam02, 21:07 20-02-2017
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    tramparamparam02
    Цитата:
    nircmd speak text "<что_надо_сказать>"
    произносит что угодно, в том числе по-русски. Если записать время в виде "23 04" - то скажет.

    Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 21:36 20-02-2017
    tramparamparam02



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pasha_ZZZ 20:36 20-02-2017
    Цитата:
     Если записать время в виде "23 04" - то скажет.

    Спасибо, но это не совсем то, про что я спрашивал. Процитирую центральную часть своего поста ещё раз: "для озвучивания вслух голосом текущего системного времени, скажем, каждые полчаса". То есть, произносимый текст - это переменная, а не фиксированное содержимое файла.

    Всего записей: 2371 | Зарегистр. 30-03-2016 | Отправлено: 21:56 20-02-2017 | Исправлено: tramparamparam02, 21:57 20-02-2017
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    tramparamparam02
    При чем тут файл??? Во-первых. я команду дал не для файла, а для текста в комстроке. А во-вторых, мы же в теме батников находимся. Тут люди вроде как в курсе, что такое TIME /T. Ну неужели сложно вот такое, например:
    Цитата:
    for /f "tokens=1,2 delims=:" %%a in ('time /t') do nircmdc speak text "%%a %%b"

    Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 22:52 20-02-2017
    tramparamparam02



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pasha_ZZZ 21:52 20-02-2017
    Цитата:
    вот такое, например

    Спасибо! То, что было нужно. А я думал, что батником не решается
    Единственная просьба: а можно ли добавить к переменным времени ещё постоянный текст, например, чтобы на выходе было "the current time is [22] hours [30] minutes"?
     

    Цитата:
    мы же в теме батников находимся. Тут люди вроде как в курсе, что такое TIME /T. Ну неужели сложно вот такое,

    У вас немного (?) завышенные ожидания относительно части посетителей этого топика вроде меня, которые приходят попросить помощи у более продвинутых товарищей. Скажем, у меня имеется общее представление о батниках и комстроке, но не более того. Могу наваять что-нибудь вроде "start regedit" и т.п. Но синтаксис выложенного вами примера - это уже как китайская грамота

    Всего записей: 2371 | Зарегистр. 30-03-2016 | Отправлено: 00:22 21-02-2017 | Исправлено: tramparamparam02, 00:24 21-02-2017
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    tramparamparam02
    Постоянный текст добавить можно. Но учтите, что цифры читаются в текущей локали винды, можно получить кашу из английского с русским. Проще и текст написать на русском, но выплывет проблема с формами слов "часы" и "минуты" (час, часа, часов... с минутами так же). В общем, попробуйте "Текущее время %%a %%b". Батник должен быть в кодировке DOS (866).
     
    Добавлено:
    Если между текстом и временем поставить тире - вставится пауза (как и положено).

    Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 00:36 21-02-2017
    VV2006

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pasha_ZZZ
    Можно и вот так ещё, только ума не дам (самому мало), как вывод time /T туда запихнуть:
    Код:
    /*
    cls& @echo off& start /min cscript //nologo /e:jscript "%~f0" &exit /b
    */new ActiveXObject("SAPI.SpVoice").Speak ("Текущее время: 01:05")


    Всего записей: 2123 | Зарегистр. 10-02-2006 | Отправлено: 01:14 21-02-2017 | Исправлено: VV2006, 01:20 21-02-2017
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    VV2006
    Ну это понятно. Но зачем жабоскрипт, когда и так утиль в 40 кил справляется очень даже хорошо. Да и вывод TIME /T туда не надо засовывать - там и так есть объект Date

    Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 01:25 21-02-2017
    VV2006

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

    Цитата:
    там и так есть объект Date

    Тогда подскажи плз, как его в скрипте "выговаривать".

    Всего записей: 2123 | Зарегистр. 10-02-2006 | Отправлено: 01:30 21-02-2017
    NIKZZZZ



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

    Цитата:
    Тогда подскажи плз, как его в скрипте "выговаривать".

    Как-то так

    Код:
    set hour[00]=ноль часов
    set hour[01]=один час
    set hour[02]=два часа
    ::..... и т.д.
    set hour[23]=двадцать три часа
     
    set min[00]=ноль минут
    ::..... и т.д.
    set min[59]=пятьдесят девять минут
    setlocal enabledelayedexpansion  
    for /f "tokens=1,2 delims=:" %%a in ('time /t') do set Tm=!hour[%%a]! !min[%%b]!  
    nircmdc speak text "%tm%
     


    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 01:59 21-02-2017
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    tramparamparam02
    Оказывается, если передать в Speech API время в системном формате (ХХ:УУ) - то оно и произносится как время (с правильными часами и минутами). Поэтому можно поменять строчку на такую:
    Цитата:
    for /f "tokens=*" %%a in ('time /t') do nircmdc speak text "Текущее время - %%a"

     
    VV2006
    В вашем примере куча всего, чего не нужно делать. А особенно скрывать ошибки очисткой консоли.
    То, что вы хотели сделать (передача вывода команды TIME в JS) выглядит примерно так:
    Цитата:
    @set @x=0 /*
    @echo off
    time /t|cscript //nologo /e:jscript "%~f0"
    goto :eof
    */
     
    new ActiveXObject("SAPI.SpVoice").Speak("Текущее время: " + WScript.StdIn.ReadAll());
    но этот батник должен быть в кодировке Windows (1251), чтобы русский текст остался русским.

    Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 01:59 21-02-2017
    sherba800

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть проблема: пишу в батник следующую команду:

    Код:
    tzutil /s "Russian Standard Time"

    После исполнения батника ноль результата. Запускал от админа и от юзера. Если ввести команду напрямую в терминал - моментально временная зона меняется. Как заставить данную команду отрабатываться через бат-файл?

    Всего записей: 58 | Зарегистр. 22-09-2014 | Отправлено: 10:09 21-02-2017
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sherba800
    Все меняется. И под юзером, и под админом

    Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 10:19 21-02-2017
    tramparamparam02



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pasha_ZZZ 23:36 20-02-2017
    Цитата:
    Постоянный текст добавить можно. Но учтите, что цифры читаются в текущей локали винды, можно получить кашу из английского с русским. Проще и текст написать на русском, но выплывет проблема с формами слов "часы" и "минуты" (час, часа, часов... с минутами так же)

    Ещё раз спасибо.
    Для полноты картины нашёл в интернете ещё несколько решений на MS (Visual Basic) VBScript, например, вот тут или вот тут или тут.
    В связи с этим возник вопрос: при наличии принципиально схожих решений через батник или через MS VB-скрипт что из них лучше предпочесть - и почему? Подозреваю, что на этот вопрос трудно ответить понятно для дилетанта в двух словах, но хотя бы намекните.

    Всего записей: 2371 | Зарегистр. 30-03-2016 | Отправлено: 12:18 21-02-2017 | Исправлено: tramparamparam02, 12:19 21-02-2017
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    tramparamparam02
    Ну во-первых, это не "еще несколько решений", а все одно и то же. Вам предлагалось на JScript, тут на VBScript. Разницы между решениями абсолютно никакой. Просто JScript можно достаточно безболезненно внедрить внутрь батника. При наличии кривизны в винде, например "почищенной" всякими чистилками реестра, скрипты могут вообще не работать, а NirCmd должна.

    Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 15:56 21-02-2017
    uncleShi



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tramparamparam02
    Pasha_ZZZ
    Чет вспомнилось по поводу проговаривания текста. От выключенной кнопки не спасёт конечно, но

    Код:
    nircmdc.exe mutesysvolume 0
    nircmdc.exe setsysvolume 65535  

    Всего записей: 3018 | Зарегистр. 29-05-2003 | Отправлено: 23:44 21-02-2017
    bomzz

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    LASTINPUT.EXE  2,50 КБ (2 560 байт)
     
    утилита выключающая компьютер (Forced Shutdown, ExitWindowsEx 5) по заданному командным параметром в миллисекундах периоду бездействия юзера
     
    LASTINPUT.EXE 10000
    выключить компьютер после 10 секунд отсутствия событий ввода (клавиатура мышь)
     
    Функция GetLastInputInfo
     
    LASTINPUT.ZIP  1,24 КБ (1 271 байт)

    Всего записей: 3412 | Зарегистр. 29-03-2016 | Отправлено: 06:47 28-02-2017 | Исправлено: bomzz, 07:24 28-02-2017
    ShadowBroker

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте, у меня есть такая идея для сигнала от шифратора. Вирус в первую очередь шифрует "мои документы" а потом все на дисках. Можно ли с помощю бат файла мониторить "мои документы" там разместить файл маркер Pdf,dok итд. если файл изменился поменял тип, вывести окно собщение  "Внимание у вас работает шифратор" сам батник перевести в ехе и повесить как сервис.
    P.S. Если ето бредовая идея и нереализуема, сильно не ругайтесь, потому и спрашиваю знающих.

    Всего записей: 99 | Зарегистр. 25-01-2017 | Отправлено: 03:29 04-03-2017 | Исправлено: ShadowBroker, 03:38 04-03-2017
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 12
    KLASS (06-03-2018 00:44): Объединение тем по сценариям: Сценарии Windows


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru