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

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

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

vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:37 26-05-2009 | Исправлено: TechnicsKuzya, 13:53 27-12-2009
    slay1212

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MothROM2
      Способ через ж:: задисаблить всех лок юзеров ( кроме напр админа).  
    Как вывести список лок юзеров  я знаю  ( net user) не знаю как отфильтровать правильные (исключив всякие стандартные и отфильтровав доменные).  
      Ну а потом нужный тебе список юзеров  отключаешь  
     net user vasya_pupkin /times:
     
      И этот юзер уже не залогинится . Пока не отменишь  
     
     net user vasya_pupkin /times:M-F,9:00-18:00  или
     net user vasya_pupkin /times:ALL
       
     Ну  сменить пароль учетки админа хороший пример здесь есть
     

    Код:
     
    REM Меняем случайным образом пароль пользователя
       REM и сохраняем информацию об этом в файле PASSWORD.TXT
       :random
       for /f "tokens=2 delims=:" %%i in ('net user %UName% /random^|find "%UName%"') do set UPwd=%%i
       if "%UPwd%"=="" goto random
       echo %Uname%:%UPwd% >>PASSWORD.TXT
     

     Вместо Uname укажи Администратор или Administrator
     

    Всего записей: 336 | Зарегистр. 28-05-2008 | Отправлено: 17:18 07-12-2009 | Исправлено: slay1212, 09:05 08-12-2009
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    меня идея с прогресс-баром навела на мысль (правда ход мыслей получился витиеватым), что можно еще зделать батник screensaver clock с кодом как у меня здесь - http://forum.ru-board.com/topic.cgi?forum=62&topic=17154&start=1060#21 или похожим по принципу, то есть в скрипте в loop'e вместо echo text записать echo %time% (она же динамическая variable) и при запуске в полноэкранном режиме будет двигаться по экрану CURRENTTIME с задержкой ping -n localhost  (а как говорил мне кажется  wolf0425 задержка ping'om снизит cpu load)

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 23:06 07-12-2009
    seregaknorrr1



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите модифицировать этот скрипт который Проверяет впн подключение и если не подключено то отключает и переподключает сетевуху и пытаеться подключиться :
    @echo off
    set connection=server
    set pause=10
     
    :LOOP
    set connected=0
    for /f "delims=" %%i in ('rasdial') do (
        if "%%i"=="%connection:"=%" set connected=1
    )
    if %connected%==0 (
        echo %date% %time%    "%connection%" connection not detected. Dialing...
    C:\devcon\i386\devcon.exe disable PCI\VEN_1022
    sleep 5
    C:\devcon\i386\devcon.exe enable PCI\VEN_1022
    sleep 5
    rasdial "%connection:"=%"
    ) else (
        echo %date% %time%    "%connection%" connection is active.
    )
    ping -n %pause% 127.0.0.1>nul 2>&1
    goto LOOP
     
    Модификация должна делать так чтобы если подключение с впн не установоено то вначале бы он пытался установить подключение rasdial а если подключение не может быть установлено из за ошибки тогда выполнить devcon disable и enable (отключение сетевого адаптера)а затем пытаться подключиться снова.

    Всего записей: 102 | Зарегистр. 19-01-2005 | Отправлено: 02:31 08-12-2009
    Primat081

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте, помогите решить такую задачу:  
    Подсчитать количество подкаталогов в заданном (пользователем) каталоге.
    Заранее спасибо!!! Очень прошу помочь мне!

    Всего записей: 6 | Зарегистр. 04-12-2009 | Отправлено: 08:14 08-12-2009
    SergioBS



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Народ замутилась тема здесь: http://forum.ru-board.com/topic.cgi?forum=33&topic=10817#9
    Похоже без знатоков не обойтись. Помогите плиз...

    Всего записей: 229 | Зарегистр. 25-11-2004 | Отправлено: 15:42 08-12-2009
    wolf0425



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

    Цитата:
    Здравствуйте, помогите решить такую задачу:  
    Подсчитать количество подкаталогов в заданном (пользователем) каталоге.
    Заранее спасибо!!! Очень прошу помочь мне!

    Код:
    for /f %%a in ('dir /b/a:d c:\catalog ^| find /c /v "" ') do echo there are %%a catalog(s)
    Это если без вложенных.
    с вложенными - dir /b/s/a:d

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 18:12 08-12-2009
    king_stiven

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

    Код:
    @echo off
    for /f %%a in ('dir /b/a:d /s d:\') do set /a n+=1
    echo %n%

    Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 20:06 08-12-2009
    AnGo



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Hi, All!
    Есть такой вот вопрос.  
    Имеется батник следующего содержания
     
    robocopy.exe source1 dest1 file1
    robocopy.exe source2 dest2 file2
    ..
    ..
    ..
    robocopy.exe sourceN destN fileN
     
    Хочется контролировать результат выполнения копирования.
    Общее количество кодов robocopy = 17 штук.
    Вставлять после каждого вызова, даже сокращенный список кодов возврата, ИМХО, не комильфо.
    Можно ли организовать в батнике, что-то типа вызова функции (подпрограммы), но при этом текст функции (подпрограммы) должен находиться в этом же батнике? Как сделать с двумя батниками, я знаю, не хочу плодить дополнительные бат-файлы.  

    Всего записей: 1078 | Зарегистр. 07-07-2002 | Отправлено: 08:00 09-12-2009
    wolf0425



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

    Цитата:
    Можно ли организовать в батнике, что-то типа вызова функции (подпрограммы), но при этом текст функции (подпрограммы) должен находиться в этом же батнике?
    вдумчиво читать call /?
    Ну и демонстрашка:
    Код:
    @echo off
    call :metka par3=%3 par2=%2 par1=%1
    echo %errorlevel%
    goto :eof
     
    :metka
    echo %1 %2 %3
    exit /b 312

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 08:24 09-12-2009 | Исправлено: wolf0425, 08:26 09-12-2009
    Maqentaer



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AnGo
    в твоем случае когда фиксированное число итераций, то:

    Код:
    for /l %%i in (1,1,17) do (
        robocopy.exe source%%i dest%%i file%%i
    )

     
    Добавлено:
    AnGo

    Цитата:
    Можно ли организовать в батнике, что-то типа вызова функции (подпрограммы), но при этом текст функции (подпрограммы) должен находиться в этом же батнике?

    call и метки тебе в помощь
    набери call /?

    Всего записей: 71 | Зарегистр. 18-05-2008 | Отправлено: 12:37 09-12-2009
    CorwinII

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте! Помогите решить такую задачу: Мне нужно скопировать несколько файлов с одной папки в другую... Вопрос: как сделать, чтобы рядом с батником создавался текстовый файл со списком файлов, которые были скопированны, (например LOG.TXT) ? Зарание спасибо!

    Всего записей: 10 | Зарегистр. 24-11-2009 | Отправлено: 15:39 09-12-2009
    AnGo



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вопрос на засыпку.
    У меня в ресурс ките для XP & Win2003 не оказалось утилиты forfiles.
    Ресурсный кит скачан с сайта MS.
    Вместе с тем, в ките для w2000 она была.  
    В связи с эти и вопрос, почему её нет в ките для XP? Не оправдала доверия БГ и заменена на что-то другое или ликвидирована как класс?
    Кто знает, куда и почему она делась?

    Всего записей: 1078 | Зарегистр. 07-07-2002 | Отправлено: 17:56 09-12-2009
    egor23



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

    Цитата:
    Forfiles наконец включена в стандартную установку Windows Vista

    http://www.osp.ru/win2000/2009/03/7312618/

    Всего записей: 3832 | Зарегистр. 03-11-2003 | Отправлено: 19:53 09-12-2009
    BorlandIMHO

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

    Цитата:
    нужно скопировать несколько файлов с одной папки в другую... Вопрос: как сделать, чтобы рядом с батником создавался текстовый файл со списком файлов, которые были скопированны, (например LOG.TXT)
    В простейшем случае - перенаправлением вывода команды copy.

    Код:
    copy "c:\source folder\*.*" "d:\target folder">>d:\copylog.txt".

    Все файлы из папки c:\source folder копируются в d:\target folder с созданием списка d:\copylog.txt; при этом в конец лога добавляется строчка "xx файлов скопировано".
     
    Если нужен именно список без доп. строки -  
     

    Код:
    for /f %%N in ('dir /b "c:\source folder\*.txt"') do (
    copy "%%~dpnxN" "d:\target Folder">nul
    echo %%~nxN>>d:\copylog.txt
    )

    Все текстовые (*.txt) файлы из папки c:\source folder копируются в d:\target folder с созданием списка d:\copylog.txt
    Не устраивает жёстко заданный путь d:\copylog.txt - замените его на "%~dp0copylog.txt", лог будет класться в папочку, из которой запущен батник (если, конечно, у запускающего пользователя хватает прав на запись в этом каталоге).

    ----------
    http://www.imho.ws

    Всего записей: 2615 | Зарегистр. 12-10-2006 | Отправлено: 21:14 09-12-2009 | Исправлено: BorlandIMHO, 18:01 10-12-2009
    Ninja33



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BorlandIMHO Спасибо, я как раз тоже искал решение аналогичной задачи, своим ответом Вы мне очень помогли!
    Только у меня задача немного отличается, а именно мне нужно также скопировать из папки в папку, с созданием лога без дополнительной строки, в папке от куда запускался батник, только без команды FOR... Реально ли так сделать?

    Всего записей: 32 | Зарегистр. 28-09-2008 | Отправлено: 22:29 09-12-2009 | Исправлено: Ninja33, 22:41 09-12-2009
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ninja33 а чем тебе команда FOR помешала?

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 22:56 09-12-2009
    BVV63



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, пожалуйста, как можно определить длину переменной (переменная - одним словом, т. е. не содержит пробелов)?

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 09:10 10-12-2009
    CorwinII

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

    Всего записей: 10 | Зарегистр. 24-11-2009 | Отправлено: 09:14 10-12-2009
    Maqentaer



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

    Код:
    set "str=%~1"
    set length=0
    :loop
    if defined str (
        set "str=%str:~0,-1%"
        set /A length += 1
        goto loop
    )
    echo %length%

    Всего записей: 71 | Зарегистр. 18-05-2008 | Отправлено: 12:11 10-12-2009
    NONONINI

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, как сделать паузу между откл. и  подключением, например в 5сек
    @echo off
    rasdial.exe "internet" /disconnect
    nircmdc.exe wait 15000
    :Connect
    rasdial.exe "internet" "Логин" "пароль"
    rasdial.exe | find.exe /i "internet"
    if %errorlevel%==1 (nircmdc.exe wait 5000 & goto Connect)

    Всего записей: 5150 | Зарегистр. 15-04-2009 | Отправлено: 17:14 10-12-2009
       

    Страницы: 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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 7
    vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru