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

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

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

vu1tur (04-11-2008 23:07): Задачи на bat-файлах 6  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Nagual



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

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

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

  • Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 12:28 19-03-2008 | Исправлено: Nagual, 01:02 24-09-2008
    king_stiven

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

    Цитата:
    уже есть готовые папки согласно (сообщения выше) кода, т.е. 11 тыс папок, но свалены они все в одну директорию  
    нужно теперь их рассортировать по своим подпапкам


    Код:
    @echo off
    for /f "tokens=*" %%c in ('dir /b /a:d /o:-n') do (
        set subfolder=%%c
        set count=1
        set count1=2
        call :begin
    )
    goto :eof
    :begin
    set folder=
    :begin1
    for /f "tokens=%count%,%count1%* delims=-" %%a in ("%subfolder%") do (
        if defined folder set folder=%folder%-%%a
        if not defined folder set folder=%%a
        set /a count+=1
        set /a count1+=1
        if "%%c"=="" (
            if "%%b"=="" (
                goto end
            ) else (
                goto Moving
            )
        )
        goto begin1
    )
    :Moving
    move "%subfolder%" "%folder%"
    :end

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 09:25 27-09-2008
    cane4ek



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    есть LAN сеть и "Подключение по локальной сети", когда начинает тормазить, я нажимаю "Исправить" в меню сет.подключения или свойствах. Можно как-нибудь батником выполнить ето действие ?

    Всего записей: 92 | Зарегистр. 16-11-2007 | Отправлено: 15:52 27-09-2008
    braunberg

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйста, можно ли используя gsar.exe пакетно в ряде текстовых файлов заменить одно слово на другое, не прописывая в батнике имена всех файлов (используя что-то типа *.txt)?

    Всего записей: 35 | Зарегистр. 22-01-2008 | Отправлено: 00:18 28-09-2008
    Magniton



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, как поставить\снять атрибут, например, "скрытый" для папки? С файлами то всё понятно...

    Всего записей: 6 | Зарегистр. 07-07-2008 | Отправлено: 00:52 28-09-2008
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Magniton
    attrib +r "путь к папке"
    (без концевого слеша)
     
    braunberg
    можно)

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 00:59 28-09-2008
    braunberg

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nagual, спасибо за подтверждение догадки) - как сделать?

    Всего записей: 35 | Зарегистр. 22-01-2008 | Отправлено: 01:19 28-09-2008
    Magniton



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nagual, спасибо.
     
     
    Добавлено:
    Есть .bat-файл для поиска файлов c заданным расширением (например .exe) в папке и подпапках с записью результата поиска в файл Rezultat.txt (на основе Ссылка)

    Код:
     
    @echo off
    echo Please wait...
    mode con codepage select=1251 > nul
    set ind=0
    :next
    set /a ind+=1
    set tmp=
    for /f "delims=\ tokens=%ind%" %%a in ("%~dp0") do set tmp=%%a
    if not "%tmp%"=="" goto next
    set /a ind-=1
    if exist Rezultat.txt del Rezultat.txt
    for /f "delims=\ tokens=%ind%*" %%a in ('dir *.exe /b /s') do echo %%b >> Rezultat.txt
    if exist Rezultat.txt start Rezultat.txt
     

    Как его отредактировать, что-бы в процессе его работы можно было задавать желаемое расширение файлов для поиска? (Неохота всё время открывать и редактировать сам батник).
    Спасибо.

    Всего записей: 6 | Зарегистр. 07-07-2008 | Отправлено: 02:34 28-09-2008
    01MDM



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

    Код:
     
    :: list.cmd
    @echo off
    chcp 1251 1>nul
     
    :: если нужны полные пути
    dir /b /s /a %* 1>Result.txt
     
    :: если только названия файлов
    cd.>Result.txt
    for /f "tokens=*" %%i in ('dir /b /s /a %*') do echo %%~nxi 1>>Result.txt
     

     
    Указываешь желаемое расширение, как параметр к батнику:

    Код:
     
    C:\> list *.txt *.exe *.jpg *.lnk
     

     
    Файл Result.txt создастся в той папке откуда запустишь батник.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 05:53 28-09-2008 | Исправлено: 01MDM, 06:10 28-09-2008
    Magniton



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Что-то эта строка у меня не работает

    Код:
    C:\> list *.txt *.exe *.jpg *.lnk

    или я её не туда подставляю...
    А ты можешь привести готовый батник?

    Всего записей: 6 | Зарегистр. 07-07-2008 | Отправлено: 11:55 28-09-2008
    01MDM



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

    Цитата:
    А ты можешь привести готовый батник?

     
    Эта строка - пример как вызывать батник, а сам батник выше. Оставь в нем что нужно. И назови его list.cmd, или как-нибудь на свое усмотрение.  

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 13:02 28-09-2008
    Magniton



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Разобрался уже со своим батником. Сделал так:

    Код:
    @echo off
    Set /p in=search:
    echo Please wait...
    mode con codepage select=1251 > nul
    set ind=0
    :next
    set /a ind+=1
    set tmp=
    for /f "delims=\ tokens=%ind%" %%a in ("%~dp0") do set tmp=%%a
    if not "%tmp%"=="" goto next
    set /a ind-=1
    if exist Rezult.txt del Rezult.txt
    for /f "delims=\ tokens=%ind%*" %%a in ('dir *.%in% /b /s') do echo %%b >> Rezult.txt
    if exist Rezult.txt start Rezult.txt
     

    Спасибо.

    Всего записей: 6 | Зарегистр. 07-07-2008 | Отправлено: 20:40 28-09-2008
    ja_ja

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Извиняюсь если ранее это уже обсуждалось.  Просто искал но на нашел, по этому решил задать в виде вопроса
     
    Имеется ноут, сидит в домене, имеет свой IP адрес (например 192.168.10.115), учетная запись не имеет прав администратора.
     
    Периодически этот ноут надо переносить в другую подсеть, без домена (например 85.65.123.11) но пользователь не может сам менять сетевые параметры так как не имеет права администратора.  
     
    При этом сам пользователь и я (я сам администратор обоих сетей) знаем пароль локального администратора (допустим пароль 1234).
     
    Теперь задача, надо найти способ легко иметь возможность менять параметры сети но юзеру при этом не должно понадобится логится локальным администратором, параметры должны меняться с минимальными комбинациями от пользователя (Например кликать на ярлык или на этот ярлык установим комбинацию клавиш (или что-то такое, простое)).
     
    Я решил что легче всего сделать с помощью BAT файла, но этот гад без прав админа править настройки не хочет. Использовал 2 варианта:
     
    1) создал 2 батника в одном прописал
    netsh interface ip set address name="Local Area Connection" static 192.168.10.115 255.255.255.0 192.168.1.1
     
    во втором (возвращаю параметры для первой сети)
    netsh interface ip set address name="Local Area Connection" static 85.65.123.11 255.255.255.0 85.65.1.1
     
    всё работает но только с правами админа
     
    2) созданные батники запускаю с помощью команды runas  с параметром /user (и указываю пользователем локального администратора) всё запускается но просит пароль а юзеру пароль администратора вводить не хочется и просить придумать автоматический вариант.  
     
    Перерыл всё не нашел как можно обойти ввод пароля администратора, можете что-нибудь посоветовать или BAT файлом это никак не реализовать?

    Всего записей: 5 | Зарегистр. 31-12-2006 | Отправлено: 16:54 29-09-2008
    renee



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    All
    Нужно осуществить резервное копирование всех *.PST в домене. Как можно осуществить автоматический поиск *.PST по всем рабочим станциям домена? Что дальше делать с результатами поиска - вопрос несложный, хоть перенаправлять в txt и скармливать архиватору... Главное, не придумаю, как сделать поиск по маске по всем компам домена...

    Всего записей: 488 | Зарегистр. 06-04-2005 | Отправлено: 18:06 29-09-2008
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ja_ja
    Посмотри здесь - http://www.commandline.co.uk/sanur_unsupported/index.html или здесь - http://www.softtreetech.com/24x7/archive/53.htm

    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 23:10 29-09-2008 | Исправлено: Elroir, 23:27 29-09-2008
    DOStavun



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день помогите пожалуйста есть скрипт:
     
    echo off
    @ECHO -------------------------------------------- > C:\computername.log
    if exist Z:\*.* net use Z: /delete >> c:\computername.log
    if exist Y:\*.* net use Y: /delete >> c:\Logfile.log
    if exist X:\*.* net use X: /delete >> c:\Logfile.log
    if exist W:\*.* net use W: /delete >> c:\Logfile.log
    if exist V:\*.* net use V: /delete >> c:\Logfile.log
    if exist U:\*.* net use U: /delete >> c:\Logfile.log
    if exist T:\*.* net use T: /delete >> c:\Logfile.log
    if exist S:\*.* net use S: /delete >> c:\Logfile.log
    if exist R:\*.* net use R: /delete >> c:\Logfile.log
    if exist Q:\*.* net use Q: /delete >> c:\Logfile.log
    if exist P:\*.* net use P: /delete >> c:\Logfile.log
    if exist O:\*.* net use O: /delete >> c:\Logfile.log
    if exist N:\*.* net use N: /delete >> c:\Logfile.log
    if exist M:\*.* net use M: /delete >> c:\Logfile.log
    if exist L:\*.* net use L: /delete >> c:\Logfile.log
    if exist K:\*.* net use K: /delete >> c:\Logfile.log
     
    так вот нужно чтобы Logfile.log соответсвовал сетевому имени компьютера и сохранялся на какойто скрытый ресурс Например \\Server\logfile$
     
    Заранее благодарен.
     
    И ещё один вопрос как сделать батник что бы он настройки сети сбрасывал на получение всего по DHCP. Просто большая сеть и не реально обойти всех и проверить настройки сети!?? Причём вопрос возник в изменении DNS ???

    Всего записей: 4 | Зарегистр. 30-09-2008 | Отправлено: 15:27 30-09-2008 | Исправлено: DOStavun, 15:46 30-09-2008
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    DOStavun
    >> \\Server\logfile$\%computername%.log

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 16:12 30-09-2008
    4kusnik



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Запускаю удаленно машину через Wake Up On LAN запуска батник

    Код:
    reg add "\\имя_машины\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /t REG_SZ /d administrator /f

    вводится имя administrator
     
    Далее запускаю батник чтобы ввелся пароль

    Код:
    reg add "\\имя_машины\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /t REG_SZ /d пароль /f

    но пароль не вводится
     
    Подскажите я все правильно написал?

    Всего записей: 463 | Зарегистр. 09-03-2008 | Отправлено: 16:20 30-09-2008 | Исправлено: 4kusnik, 16:23 30-09-2008
    DOStavun



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всё работает спасибо!!!!!!!! А как со скриптом исправляет настройки сети на получение всех настроек по DHCP??? Можно как нибудь такое сделать???

    Всего записей: 4 | Зарегистр. 30-09-2008 | Отправлено: 16:53 30-09-2008
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    DOStavun
    Взглянб в сторону  
    NetSh /?
     
    самому никогда не надо было - поэтому сказать не могу (у меня все компы в сети получают IP через DHCP)

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 16:58 30-09-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    4kusnik
     
    Попробуй взять пароль в кавычки. (.../d "пароль" /f )

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 17:01 30-09-2008
       

    Страницы: 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-файлах 5
    vu1tur (04-11-2008 23:07): Задачи на bat-файлах 6


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru