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

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



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

    Цитата:
    Как написать такой пакетник, чтобы он переводил кирилицу в латиницу?


    Код:
     
    @echo off
    setlocal
    chcp 1251>nul
    set "word=Тестовое слово"
    SET "word=%word:ж=zh%"
    SET "word=%word:Ж=ZH%"
    SET "word=%word:ц=ts%"
    SET "word=%word:Ц=TS%"
    SET "word=%word:ч=ch%"
    SET "word=%word:Ч=CH%"
    SET "word=%word:ш=sh%"
    SET "word=%word:Ш=SH%"
    SET "word=%word:щ=sch%"
    SET "word=%word:Щ=SCH%"
    SET "word=%word:ю=yu%"
    SET "word=%word:Ю=YU%"
    SET "word=%word:я=ya%"
    SET "word=%word:Я=YA%"
    SET "word=%word:а=a%"
    SET "word=%word:б=b%"
    SET "word=%word:в=v%"
    SET "word=%word:г=g%"
    SET "word=%word:д=d%"
    SET "word=%word:е=e%"
    SET "word=%word:ё=e%"
    SET "word=%word:з=z%"
    SET "word=%word:и=i%"
    SET "word=%word:й=j%"
    SET "word=%word:к=k%"
    SET "word=%word:л=l%"
    SET "word=%word:м=m%"
    SET "word=%word:н=n%"
    SET "word=%word:о=o%"
    SET "word=%word:п=p%"
    SET "word=%word:р=r%"
    SET "word=%word:с=s%"
    SET "word=%word:т=t%"
    SET "word=%word:у=u%"
    SET "word=%word:ф=f%"
    SET "word=%word:х=h%"
    SET "word=%word:ъ=`%"
    SET "word=%word:ы=i%"
    SET "word=%word:ь=`%"
    SET "word=%word:э=e%"
    SET "word=%word:А=A%"
    SET "word=%word:Б=B%"
    SET "word=%word:В=V%"
    SET "word=%word:Г=G%"
    SET "word=%word:Д=D%"
    SET "word=%word:Е=E%"
    SET "word=%word:Ё=E%"
    SET "word=%word:З=Z%"
    SET "word=%word:И=I%"
    SET "word=%word:Й=J%"
    SET "word=%word:К=K%"
    SET "word=%word:Л=L%"
    SET "word=%word:М=M%"
    SET "word=%word:Н=N%"
    SET "word=%word:О=O%"
    SET "word=%word:П=P%"
    SET "word=%word:Р=R%"
    SET "word=%word:С=S%"
    SET "word=%word:Т=T%"
    SET "word=%word:У=U%"
    SET "word=%word:Ф=F%"
    SET "word=%word:Х=H%"
    SET "word=%word:Ъ=`%"
    SET "word=%word:Ы=I%"
    SET "word=%word:Ь=`%"
    SET "word=%word:Э=E%"
    SET "word=%word: =_%"
    echo %word%
     

    Добавлено:
    Немного изменил по совету igor_andreev

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 19:47 30-01-2007 | Исправлено: Elroir, 00:52 31-01-2007
    FXPELIVE

    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Elroir
    Спасибо, но только почему слово "Ф И О" переводится в "f_i_o__________________________________________________________________"
    Как убрать прочерк после слов?

    Всего записей: 348 | Зарегистр. 27-04-2006 | Отправлено: 19:51 30-01-2007 | Исправлено: FXPELIVE, 19:57 30-01-2007
    Elroir



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

    Цитата:
    Как убрать прочерк после слов?

    Убедиться, что после Ф И О нет пробелов, так как батник заменяет все пробелы знаком подчеркивания.
     
    Добавлено:
    А... понял - удали все пробелы в конце строк батника
     
    Добавлено:

    Цитата:
    Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!


    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 20:03 30-01-2007
    FXPELIVE

    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Elroir
    Всё ОК! Ещё раз спасибо.

    Всего записей: 348 | Зарегистр. 27-04-2006 | Отправлено: 20:08 30-01-2007
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    Кстати, к вопросу о гадских пробелах на ru-board при копировании, обрати внимание, как я написал свой предыдущий пост для Tipulatoid
    SET "team_1_name=Владивосток"
    SET /A "COUNT+=1"
    и т.п. Брал значения в кавычки, так можно. В строчке:
    CALL :write_label "%%A" значение %%A тоже передал в кавычках и в метке :write_label убрал кавычки тильдой %~1. Как результат - все работает при копировании с форума. В твоем примере тоже, если взять все присвоения значений в кавычки вместо:
    SET word=%word:ж=zh%
    написать:
    SET "word=%word:ж=zh%"
    все будет работать при копировании. Не панацея конечно, но хоть как-то

    Всего записей: 1708 | Зарегистр. 08-12-2004 | Отправлено: 20:14 30-01-2007 | Исправлено: igor_andreev, 20:45 30-01-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev
    OK, возьму на вооружение, спасибо!
    Кстати, код замены букв, если не ошибаюсь, я взял у тебя

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 20:21 30-01-2007
    rbcl

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вот задачка встала тут передо мной. Найти запущенные службы по маске и тормознуть их. Пол скрипта вроде сделал. а на остальное не хватает. Вообщем имею на выходе в стандартном потоке список нужных служб. Как применить цикл "for" чтобы сделать "net stop" каждой из них?  

    Всего записей: 22 | Зарегистр. 02-11-2005 | Отправлено: 20:41 30-01-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    rbcl
    Выведи список в файл, например list.txt.

    Код:
     
    for /f "tokens=*" %%a in (list.txt) do net stop "%%a"
     

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 20:50 30-01-2007
    rbcl

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо. А я могу использовать вот так:
    for /f "tokens=*" %%a in (net start | findstr бла бла) do net stop "%%a"  
    а то в синтаксисе совсем запутался.

    Всего записей: 22 | Зарегистр. 02-11-2005 | Отправлено: 23:47 30-01-2007
    Smitis



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

    Цитата:
    Кто подскажет, как через бат файл установить для какой-либо учетной записи срок действия пароля и как сделать, чтобы он был неограничен.  
    Если через команду  
     
    Цитата:net user пользователь пароль /add /expires:never /passwordchg:no /passwordreq:no  
     
     - то устанавливантся только что срок действия САМОЙ УЧЕТКИ неограничен. а пароль со временем заканчивается.  

    Когда-то искал, как это сделать и не нашёл
    Только если сделать для всех. Вроде бы так:

    Код:
     
    net accounts /maxpwage:unlimited /minpwage:0
     

    Впрочем, можешь покопать в сторону WMI.

    Всего записей: 3761 | Зарегистр. 09-02-2003 | Отправлено: 23:51 30-01-2007 | Исправлено: Smitis, 23:53 30-01-2007
    Elroir



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

    Цитата:
    Спасибо. А я могу использовать вот так:  
    for /f "tokens=*" %%a in (net start | findstr бла бла) do net stop "%%a"

    Надо немного изменить:

    Код:
     
    for /f "usebackq tokens=*" %%a in (`"net start | findstr бла бла"`) do net stop "%%a"
     

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 23:54 30-01-2007
    rbcl

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Большое спасибо. Пойду синтаксис учить.

    Всего записей: 22 | Зарегистр. 02-11-2005 | Отправлено: 00:29 31-01-2007
    ProbaRK

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

    Цитата:
    Кто подскажет, как через бат файл установить для какой-либо учетной записи срок действия пароля и как сделать, чтобы он был неограничен.  
    Если через команду  
     
    Цитата:net user пользователь пароль /add /expires:never /passwordchg:no /passwordreq:no  
     
     - то устанавливантся только что срок действия САМОЙ УЧЕТКИ неограничен. а пароль со временем заканчивается.  

     
    Делал так:
     
    NET USER User pass /ADD /EXPIRES:NEVER /FULLNAME:"Имя" /PASSWORDCHG:NO /COMMENT:"коментарий"
    wmic useraccount set passwordexpires=false /nointeractive
    net accounts /maxpwage:unlimited

    Всего записей: 82 | Зарегистр. 08-02-2005 | Отправлено: 01:40 31-01-2007
    igor_andreev

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

    Цитата:
    Пойду синтаксис учить
    Отсюда начни http://www.rsdn.ru/article/winshell/batanyca.xml
    2ALL ссылку можно в шапку наверное, в "Полезные ссылки", хорошая статья для начинающих. Жалко короткая.

    Всего записей: 1708 | Зарегистр. 08-12-2004 | Отправлено: 01:48 31-01-2007 | Исправлено: igor_andreev, 01:51 31-01-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev
    У меня эта страничка открылась только через русский proxy
    Добавлено:
    А сейчас нормально открывается...

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 01:58 31-01-2007 | Исправлено: Elroir, 18:02 31-01-2007
    UltiMacho

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, можно ли с пом. bat файла запустить приложение на удаленной машине?

    Всего записей: 1 | Зарегистр. 31-01-2007 | Отправлено: 16:21 31-01-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    UltiMacho
    Можно - посмотри описание утилиты PsExec.

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 17:38 31-01-2007
    royt

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кто знает, есть ли какое-то ограничение на глубину рекурсивных вызовов внутри батника?

    Всего записей: 319 | Зарегистр. 18-08-2004 | Отправлено: 20:24 31-01-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    royt
    Что ты имеешь в виду? Сколько раз батник может вызывать самого себя?

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 20:43 31-01-2007
    ViSiToR



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

    Цитата:
    Отсюда начни  http://www.rsdn.ru/article/winshell/batanyca.xml

     
    Класное пособие, в шапку добавил (и ссылку на команды RunDll32 тоже).
     


    Примечание к утилите для выключения (SBS):
    1) Ограничение в милисекундах стоит на 2147483647 (24 дня).
    2) Эта утилита также може служить простому простою, т.е вместо Sleep - для этого нужно задать только первый параметр (120-s), и запускать утилиту с ключом /wait:

    Код:
    Start /wait SBS 120-s

     
    Добавлено:
    Упс  - я вижу уже кто-то до меня добавил (кто? признавайтесь), дубль убрал .

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 23:29 31-01-2007 | Исправлено: ViSiToR, 23:30 31-01-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-2025

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru