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

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

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

evle (19-03-2008 19:44): Лимит страниц.
Задачи на bat-файлах 5
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 15:21 11-09-2007 | Исправлено: Elroir, 01:52 26-02-2008
    PetyaML

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Все работае, Elroir спасибо

    Всего записей: 56 | Зарегистр. 27-07-2006 | Отправлено: 12:36 20-01-2008
    LDAP



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Вот еще уроки по написанию Bat-скриптов для начинающих. Лучшие что я нашел сегодня:
    http://www.intuit.ru/department/os/compromtwin/1/
    Можно спокойно добавить в шапку.

    Всего записей: 522 | Зарегистр. 03-08-2005 | Отправлено: 19:13 20-01-2008
    lid111

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите батник по удалению всех папок с заданным именем ХХХ из заданного каталога YYY, содержащего подкаталоги, в них еще подкаталоги и т. д., причем папки XXX могут находиться на любых разных уровнях этой лестницы.

    Всего записей: 1547 | Зарегистр. 15-09-2006 | Отправлено: 01:26 21-01-2008
    01MDM



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

    Код:
     
    @echo off
    for /r "YYY" /d %%i in (*) do (echo "%%i" | findstr "XXX" && rd /s /q "%%i")
     


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

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не получается что-то. А это сработало:
    http://forum.oszone.net/post-720601.html

    Всего записей: 1547 | Зарегистр. 15-09-2006 | Отправлено: 02:57 21-01-2008 | Исправлено: lid111, 03:08 21-01-2008
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lid111
     
    for /r "YYY" %%i in (.) do (
        if "%%~ni"=="ХХХ" rd "%%i" /s /q
    )
     
    где YYY полный путь
    ХХХ только имя папки

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 03:23 21-01-2008
    01MDM



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

    Цитата:
    Не получается что-то. А это сработало:
    http://forum.oszone.net/post-720601.html

    Ну так там ты ставишь одно условие, здесь совсем другое. Правильный вопрос - правильный ответ.

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

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

    Цитата:
    Ну так там ты ставишь одно условие

    Там условие ставлю не я! Просто случайно нашел в сети, подставил, от фонаря, ничего не понимая в DOS, вместо того, что между кавычками в примере, свое XXX, и все подпапки с этим названием благополучно исчезли.

    Всего записей: 1547 | Зарегистр. 15-09-2006 | Отправлено: 10:43 21-01-2008
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    lid111
     
    Оба примера не совсем корректны, например если искать в каталоге C:\temp\45\12345678\Sections\ папки для удаления с именем 456, то весь каталог C:\temp\45\12345678\Sections\  удалится.
    Не проверял, возможно неправильно рассуждаю.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 10:58 21-01-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lid111
    Может просто что-то не так подставил. Главное решил в результате свою задачу.
    king_stiven
     
    Ну наверное что-то вроде, если точное имя "456"

    Код:
     
    @echo off
    for /r "C:\temp\45\12345678\Sections" /d %%i in ("456") do rd /s /q "%%i"
     

    Если "456" часть имени, то %%i in ("*456*")
    Предположительно, тоже не проверял.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 11:26 21-01-2008
    lid111

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    По адресу http://forum.oszone.net/post-720601.html, на который я сослался выше, уже, смотрю, предлагают новые рецепты, а у меня из всего предложенного здесь и там помогло только то, что на oszone в посте от busla:

    Код:
    @echo off
    if exist %temp%\dirs.txt erase %temp%\dirs.txt
    for /r %%i in (.) do echo %%i >> %temp%\dirs.txt
    for /f %%d in ('findstr /r /c:".*\\~[^\\]*\\\." %temp%\dirs.txt') do rd /s /q %%d

    Здесь кусок между кавычками \\~[^\\]*\\\. я интуитивно, совсем не зная DOS, заменил на свое XXX, сохранил текст как bat-файл, положил его в каталог YYY, запустил - и всё получилось, как заказывал!

    Всего записей: 1547 | Зарегистр. 15-09-2006 | Отправлено: 13:58 21-01-2008
    01MDM



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

    Цитата:
    положил его в каталог YYY

    Ну конечно, в этом каталоге нет еще одного YYY , надо указывать как подсказал king_stiven

    Цитата:
    где YYY полный путь

    А теперь попробуй запустить озоновский батник из другого каталога.
    Нельзя все примеры применять буквально.
     
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:05 21-01-2008
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
     
    Да скорей всего надо ещё добавить команду
     
    chcp 1251 > nul
     
    мы уже к этому привыкли, а человек пока пользуется интуицией

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 18:46 21-01-2008
    lid111

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    @echo off  
    for /r "C:\" /d %%i in ("*роро*") do rd /s /q "%%i"
    chcp 1251 > nul
     
    это из вышесказанного king_stiven и 01MDM. Папки и подпапки на диске С, содержащие "роро" в названии - остались на месте.
     

    Всего записей: 1547 | Зарегистр. 15-09-2006 | Отправлено: 19:58 21-01-2008 | Исправлено: lid111, 19:59 21-01-2008
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lid111
     
    1 так у тебя папка имеет конкретное имя `роро` или `*роро*` ?
     
    2 в таком порядке используй
     
      @echo off
      chcp 1251 > nul
          ...
     
    3 кстати в моём примере `РоРо` тоже не пройдёт, если без различия верхнего и нижнего регистра букв надо, тогда
     
        if /i "%%~ni"=="ХХХ" rd "%%i" /s /q

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 20:13 21-01-2008
    lid111

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

    Цитата:
    2 в таком порядке используй  
     
      @echo off  
      chcp 1251 > nul

     
    Спасибо, так сработало. Я ведь в досе - ноль, прочитал - добавить команду, и добавил, куда не попадя. А что кас.  

    Цитата:
    у тебя папка имеет конкретное имя `роро` или `*роро*` ?  
     

     то в данном случае я попробовал с *роро*. Я ведь для проверки батника создаю новые каталоги, отфонарные, чтоб не жалко было...
     
    А моя ссылка на oszone уже нерабочая - куда-то там дели эту страницу - переместили или снесли...
     

    Всего записей: 1547 | Зарегистр. 15-09-2006 | Отправлено: 20:30 21-01-2008 | Исправлено: lid111, 20:32 21-01-2008
    jupiter1976



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Подскажите плиз, как правильно записать строку: зайти на определенный комп в сети (по ip) и зайти на админский ресурс используя имя и пароль для запуска определенной софтины(для наглядности, но неверно -  \\192.168.1.1\с$pass\soft.exe)

    Всего записей: 201 | Зарегистр. 01-04-2006 | Отправлено: 14:28 22-01-2008
    cluster

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

    Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 15:24 22-01-2008
    PuzzleW

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    jupiter1976
    net use /?
     
    net use \\192.168.0.1\c$ PASSWORD /user:USERNAME

    Всего записей: 185 | Зарегистр. 19-12-2005 | Отправлено: 15:42 22-01-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    cluster
    Попробуй утилиту psloggedon.exe, она, вроде, для этого подойдет. Проверить негде.
    http://technet.microsoft.com/ru-ru/sysinternals/bb897545(en-us).aspx

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 16:10 22-01-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 100 101 102 103

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 4
    evle (19-03-2008 19:44): Лимит страниц.
    Задачи на bat-файлах 5


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru