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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Free_Soft



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

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



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

    Цитата:
     
    ECHO OFF
    COLOR 9F
    CLS
    chcp 1251
    FOR /f "delims=*" %%I IN ( 'current.EXE /TITLE/SUBTITLE/E:\папочка моя' ) DO SET G=%%I
    ECHO %G%
    pause
     

    так тоже работает
     
    Добавлено:
    http://bomz-co.narod.ru/current1.exe    вот отцентровал, не так просто оказалось. эта всегда будет вылазить в центр екрана

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



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Так все таки как узнать язык системы из батника? вроде какая то переменная системная была... только найти не могу. А может как через реестр?
     
    Вообще суть вот в чем: в конструкции

    Код:
    icacls "Myfile.exe" /grant Администраторы:F

    "Администраторы" должно быть указано на языке системы. Может как-то название группы из реестра выцепить?

    Всего записей: 1515 | Зарегистр. 19-04-2010 | Отправлено: 22:49 18-11-2010
    BVV63



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

    Цитата:
    вроде какая то переменная системная была...

    Нет.

    Цитата:
    А может как через реестр?

    Можно. Напр., опрашивайте параметр "InstallLanguage" под ключом [HKLM\System\CurrentControlSet\Control\Nls\Language]. Но, по-моему, корректнее через WMI:

    Код:
    For /F "Delims== Skip=2 Tokens=2 UseBackQ" %%0 In (`WMIC OS Get OSLanguage /Value`) Do Set OSLanguage=%%0
    Echo %OSLanguage%


    Цитата:
    Может как-то название группы из реестра выцепить?

    Тоже можно, хотя и труднее. В контексте безопасности локальной системы придётся выполнять. Так что не заморачивайтесь и опять-таки опрашивайте WMI (группа локальных админов имеет SID S-1-5-32-544):

    Код:
    For /F "Delims== Skip=2 Tokens=2 UseBackQ" %%0 In (`WMIC Group Where SID^="S-1-5-32-544" Get Name /Value`) Do Set Admins=%%0
    Echo %Admins%

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 05:17 19-11-2010 | Исправлено: BVV63, 05:50 19-11-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BVV63
    спасибо!
    тут еще проблемка со временем нарисовалась: в английской винде 11 часов до полудня wmic показвает как 23 почемуто

    Код:
    LocalDateTime=20101118230637.093000-480

    Всего записей: 1515 | Зарегистр. 19-04-2010 | Отправлено: 10:10 19-11-2010
    BVV63



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

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 10:29 19-11-2010 | Исправлено: BVV63, 10:29 19-11-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BVV63
    хм... наверно в нем дело. ставил на виртуалке и не менял его. а по умолчанию он по моему +8.. сейчас посмотрю
     
    Добавлено:
    да, дело в нем.

    Всего записей: 1515 | Зарегистр. 19-04-2010 | Отправлено: 10:40 19-11-2010
    praidik



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет.
    Помогите кто...
    Нужен батник который с периодичностью хотя бы в 2 часа отсылал мне на майл IP(чужой разумеется)

    Всего записей: 39 | Зарегистр. 15-11-2010 | Отправлено: 16:06 19-11-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    praidik
    Для отправки почты возьми из шапки blat. В батнике ipconfig /all >ipconfig.txt и блатом ipconfig.txt посылай.
    В начале батника запихивание его в шедулер на запуск через 2 часа с помощью at или schtasks.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 16:16 19-11-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    praidik интервал задержки в 2 часа можно сделать и без шедулера, просто пингом, если пару мегабайт памяти на это не жалко (у запущенного из шедулера, кстати, могут случиться  проблемы с доступом blat в инет).
    а вот на счет того какой тебе ip нужен -  локальный компа или тот что из интернета виден - пока непонятно.
    про локальный тебе уже подсказали, а про интернетовский - полезнее не себе на мэйл отсылать (хотя тоже можно, примеры его получения тут были), а на каком-то халявном динамическом dns тот комп зарегистрировать и на тот  комп поставить его клиента, чтоб ходить на тот комп не по присылаемому ip (зачем-то же ты его хочешь получать), а по имени типа praidik-frend.no-ip.org

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 16:36 19-11-2010 | Исправлено: wolf0425, 16:41 19-11-2010
    praidik



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    На данный момент есть это...
     
    ipconfig>C:\RECYCLER\ip.txt
    blat.exe -install -server smtp.mail.ru -port 25 -f логин@mail.ru -u логин -pw пароль
    blat.exe C:\RECYCLER\ip.txt -to логин@mail.ru -subject "My first email with BLAT"
    (отсылает IP мне на майл)
     
    Предпочтительно, чтобы этот батник запускался при подключении к нету...
    Но если так нельзя, то лучше тогда пусть он с периодичностью в 2 часа запускается.
    Допишите пожалуйста что для этого нужно...
     
    Добавлено:
    Я подумал... если делать задержку... то при перезагрузке компа батник начнёт свою работу заново... лучше пусть он включается скажем так... в 2 часа, после в 4, после в 6 и т.д.
    Можно ли так сделать? подскажите...
    Заранее спасибо!

    Всего записей: 39 | Зарегистр. 15-11-2010 | Отправлено: 16:49 19-11-2010
    bdfy

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть вот такой вот батничек. печатает все pdf файлы в папке по порядку (акробат только надо предварительно открыть).  
    for %%i in (*.pdf) do start /wait C:\Progra~1\Adobe\Acroba~1.0\Reader\acrord32.exe /n/t "%%i"
    кто-то когда то здесь и помог написать  
    вопрос а как бы сделать что-то подобное для doc/docx ? т.е распечатать по порядку все файлы в папке. просто выделить все и нажать печать идея плохая - печатает как попало ( я так и не понял в каком порядке), а надо по имени.

    Всего записей: 977 | Зарегистр. 21-04-2004 | Отправлено: 18:18 19-11-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BVV63
    Возвращаясь к кодировке экспорта из реестра: на одной машине regedit /ea отрабатывает нормально (имею ввиду кириллицу), а на другой, что /ea, что /e - выходят крякозябры. то же и при REG EXPORT. в чем может быть дело?

    Всего записей: 1515 | Зарегистр. 19-04-2010 | Отправлено: 18:25 19-11-2010
    smirnvlad

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bdfy
    видимо так (сам не проверял)
    for %%a in (*.doc?) do winword.exe "%%a" /q /n /mFilePrintDefault /mFileExit
     
    Free_Soft
    если в regedit правильно отображается и ОСи Win 2000 и новее должно быть одинаково
    может быть в реестре уже крякозябры, или в программе просмотра на том компьютере шрифт не в той кодировке

    Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 12:39 20-11-2010
    Accessor



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    посмотреть бы образец, что у тебя за крякозябры получается при экспорте.

    Всего записей: 2861 | Зарегистр. 31-10-2003 | Отправлено: 13:02 20-11-2010
    Free_Soft



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

    Код:
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\Registration\{xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}]
    "ProductCode"="{90140000-0011-0000-0000-0000000FF1CE}"
    "ProductName"="Microsoft Office профессиональный плюс 2010"
    "ProductNameBrand"="Microsoft Office профессиональный плюс 2010"
    "SuiteName"="Включено в Microsoft Office профессиональный плюс 2010"

    например, такие. В исходной ветке реестра естесственно, нормальная кириллица. Причем ошибка не стабильна, подозреваю, что она происходит только при первом экспорте.
    и еще подозреваю, что если экспортнуть в UTF-8 а не простом Unicode, будет все ок. только что regedit что reg.exe как раз в простом Unicode и экспортируют... есть выход?
     
    Добавлено:
    нет, не только при первом экспорте.

    Всего записей: 1515 | Зарегистр. 19-04-2010 | Отправлено: 13:31 20-11-2010
    Accessor



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    Сорри, по этому вопросу даже не знаю что сказать.
    Может, попробовать экспортнуть с помощью vbs-скрипта? И посмотреть что получится ...

    Всего записей: 2861 | Зарегистр. 31-10-2003 | Отправлено: 14:17 20-11-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    задал в скриптах вопрос, но тишина.... про чтение, запись, и удаление веток нашел, а про экспорт - нет. если можешь подсказать, напиши в личку плиз

    Всего записей: 1515 | Зарегистр. 19-04-2010 | Отправлено: 14:22 20-11-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    http://bomz-co.narod.ru/VBSHelp.zip

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 14:29 20-11-2010
    bdfy

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    smirnvlad
    спасибо. вот так работает
    for %%a in (*.doc?) do D:\Progra~1\Micros~1\Office12\WINWORD.EXE "%%a" /q /n /mFilePrintDefault /mFileExit
    pause
    еще бы ключик чтобы окно ворда не открывалось (т.е скрытым было)...

    Всего записей: 977 | Зарегистр. 21-04-2004 | Отправлено: 16:10 20-11-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.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru