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

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

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

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

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:53 09-01-2011 | Исправлено: mazafakermazafaka, 11:22 04-06-2011
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Luna_Q
    sed самое лучшее, без него костыли типа

    Цитата:
    мне нужно вывести только первую строку  

    for /f "tokens=3 delims=<>" %%i in ('find "<Name" 224876.XML') do (
        echo %%i>>Result.txt
        exit
    )

    Цитата:
    или только вторую

    for /f "skip=1 tokens=3 delims=<>" %%i in ('find "<Name" 224876.XML') do (
        echo %%i>>Result.txt
        exit
    )
     
     
     
    Добавлено:
    Посоветуйте менеджер горячих клавиш из комстроки, мне надо запускать батник по клавише SPACE. Причём разные батники. Разумеется после работы батника клавиша освобождается.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 13:16 05-07-2011 | Исправлено: king_stiven, 14:23 05-07-2011
    Luna_Q



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
    Спасибо!!! Забыл про skip.

    Всего записей: 94 | Зарегистр. 13-07-2010 | Отправлено: 16:57 05-07-2011
    kronomobil

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Можно ли батником удалить определенный файл с сервера из профилей пользователей? Например из C:\Documents and Settings\username\Local Settings\Application Data\Navision
    Проблема в том, что профилей много и сам конечный файл имеет имя типа <GUID>, но расширение его известно, и в конечной папке он с таким расширением только один.

    Всего записей: 46 | Зарегистр. 18-11-2010 | Отправлено: 19:47 05-07-2011
    wolf0425



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

    Цитата:
    Можно ли батником удалить определенный файл с сервера из профилей пользователей?
    вообще такие вещи лучше решать через групповые политики - типа логинится юзер, а у него активирующаяся на старте политика трет файл.
    Как примитивный вариант - файл трет попросту логон-скрипт.
     
    ну или тупо, через системную шару c$  - перебираешь одним циклом все компы юзеров, вложенным -  все каталоги в \\<usercomp>\C$\Documents and Settings\, а там уже проверяешь и удаляешь свой файл - относительный путь у него фиксированный.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 20:31 05-07-2011 | Исправлено: wolf0425, 20:32 05-07-2011
    kronomobil

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

    Цитата:
    юзер, а у него активирующаяся на старте политика трет файл

    На каждый логин пользователя - не нужно. Надо периодически запускать руками.
    При том, что серверов десяток, профилей на каждом сотня, а путь к файлу длинный, то этот процесс очень трудоемкий и его надо автоматизировать.
    Затирается программный кэш, который мешает при внедрении.

    Цитата:
    перебираешь одним циклом все компы юзеров

    Серверы, не компы. %username% в этом случае не помогает. пользователи могут быть и не залогинены..

    Цитата:
    \C$\Documents and Settings\

    Продолжением этого адреса служит совершенно рандомное имя пользователя, в этом проблема. Если это место можно подставить какую-то переменную, то проблема практически решена.
    Как вариант, потереть все файлы с определенным расширением в дереве Documents and Settings, но не подходит. Есть еще один нужный файл с таким расширением в другой папке дерева. Он должен остаться.

    Всего записей: 46 | Зарегистр. 18-11-2010 | Отправлено: 20:47 05-07-2011
    wolf0425



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

    Цитата:
     На каждый логин пользователя - не нужно. Надо периодически запускать руками.  
    в политиках есть механизм однократных запусков - у пользователей один раз затрется при первом логине.
    нужно повторить - пересбросил.
    Ну или к логон скрипту прикручиваешь проверку/установку флажка.  
    Но это если надо на всех серверах/компах подтирать у юзера.
     

    Цитата:
    Продолжением этого адреса служит совершенно рандомное имя пользователя, в этом проблема.  
    ну и какая разница - какое там имя? for /d перебирает все... или dir /b /s
     
    я так понял что у тебя сервера терминалов, раз профилей дофига. и ты прямо на них можешь что-то от админа запустить

    Код:
    for /d %%a in ( "C:\Documents and Settings\"* ) do echo del /q "%%~a\Local Settings\Application Data\Navision\name.ext"
    проверяй, name по твоему описанию похоже на * заменить надо, с расширением не ошибись
    echo после проверки уберешь.
     
     
     
     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 23:39 05-07-2011 | Исправлено: wolf0425, 00:18 06-07-2011
    kronomobil

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Политики я сам активно применяю, но в данном случае это один из последних вариантов. Инерционно очень. Надо поправить политику, надо дождаться, пока отреплицируются контроллеры, надо подождать пока терминалки ее считают и применят. Так как политика пользователя, то я не уверен, что gpupdate /force применит политику ко всем пользователям, а не только к тому, кто эту команду запустил. Логон скрипт, ясен пень не сработает для тех, кто уже сидит на сервере и т.д. и т.д.
    Кстати, где это параметр типа RunOnce в политиках? Да простят коллеги за оффтоп.

    Цитата:
    проверяй

    А вот за это спасибо. Днем проверю.

    Всего записей: 46 | Зарегистр. 18-11-2010 | Отправлено: 07:18 06-07-2011
    wasp238



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите, пожалуйста, составить батник.
    Задача:
    Каждый день, в папку d:\Temp\ "ложится" бекап с именем backup.zip, на следующий день он перезаписывается новым.  
    Надо этот файл залить на фтп login:pass@server.com/www/backup/
    притом файл надо переименовать в backup(ГГ-ММ-ЧЧ).zip, а в папке на фтп должно находится не более 25 таких зипов (т.е. батник должен проанализировать дату архивов и удалять самый старый).

    Всего записей: 49 | Зарегистр. 27-10-2008 | Отправлено: 10:43 06-07-2011 | Исправлено: wasp238, 10:46 06-07-2011
    mrCrowley

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите пожалуйста
    В Windows XP в директории MYDIR необходимо удалять папки старше 7 дней по расписанию. Создал батник вида:
     
    FORFILES -pD:\MYDIR -s -m*.* -d-7 -c"CMD /C if @ISDIR==TRUE rd /S /Q @FILE"
     
    - не работает
    В XP нет штатного forfiles - скачивал из инета - там есть файлы 11kb и 49kb - пробовал оба - не работает.  
    Ошибок никаких нет - батник вроде как отрабатывает - но папки не удаляются
     
    ----------------------------------------------------------------------------------------------------------------------------------------
     
    Все, разобрался. Подошла версия forfiles из Windows 2003 R2
     
    Изменил синтаксис батника:
    FORFILES /P D:\MYDIR /S  /D -7 /M *.* /C "CMD /c if @isdir==TRUE RD /S /Q @FILE"
     
    Так все работает

    Всего записей: 164 | Зарегистр. 18-02-2005 | Отправлено: 12:28 06-07-2011 | Исправлено: mrCrowley, 12:51 06-07-2011
    qqqbbb

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Можно добавить в шапку: делаем деинсталятор
    Подробнее...
     
    BAT-язык windows xp отличается чем-нибуть от windows7 ?

    Всего записей: 30 | Зарегистр. 25-07-2010 | Отправлено: 17:25 06-07-2011
    01MDM



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

    Цитата:
    BAT-язык windows xp отличается чем-нибуть от windows7 ?

    Нет. Если не считать различие в некоторых утилитах (netsh, wmic, fsutil), плюс добавлены новые.


    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:00 06-07-2011
    king_stiven

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

    Цитата:
    Можно добавить в шапку: делаем деинсталятор

    А чё это?

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 19:23 06-07-2011
    Nikoderiko

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как батником очистить одну и ту же папку на всех дисках?
    Например, <буква диска>:/Temp ?????
    Нужно удалить не всю папку, а только её содержимое.

    Всего записей: 808 | Зарегистр. 17-07-2002 | Отправлено: 01:29 07-07-2011
    Taran2ul



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Люди! Подскажите пожалуйста как с помощью батника решить такую задачу:
    есть программа.exe и распаковать ее можно с помощью параметра /u. Требуется создать *.cmd для распаковки файла программа.exe, но при этом имя exe'шника может меняться (программа1.exe, программа2.exe). Можно ли как нибудь унифицировать батник, например, чтобы распаковывались все *.exe файлы в папке.
     
    Nikoderiko

    Код:
    PushD c:\temp  
     if not errorlevel 1 RD /s /q .  
     PopD
    PushD d:\temp  
     if not errorlevel 1 RD /s /q .  
     PopD
    ...

    все диски перечисли

    Всего записей: 458 | Зарегистр. 18-02-2008 | Отправлено: 02:42 07-07-2011 | Исправлено: Taran2ul, 02:54 07-07-2011
    Nikoderiko

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    За совет спасибо Но если диски разные? от A до Z перечислять?
    Должна быть команда, которая перебирает все диски....

    Всего записей: 808 | Зарегистр. 17-07-2002 | Отправлено: 03:33 07-07-2011
    AZJIO



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

    Код:
    for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i:\temp set disk=%%i:\



    Если кому интересно, сделал утилиту forum для слежения за новыми сообщениями в теме.

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 04:22 07-07-2011 | Исправлено: AZJIO, 04:24 07-07-2011
    BVV63



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

    AZJIO

    Цитата:
    Если кому интересно, сделал утилиту forum

    Ну-у... Вот если бы на батнике!

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 05:53 07-07-2011 | Исправлено: BVV63, 05:53 07-07-2011
    king_stiven

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

    Цитата:
    Ну-у... Вот если бы на батнике!  

    с вгетом можно

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 06:29 07-07-2011
    GRiMka



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    У меня вопрос к знатокам, задача простая, нужно копировать файлы с расширением pdf из одной папки локальной сети, в другую. Причем копировать только новые файлы. сделал так:
     
    xcopy \\62.XX.XX.XX\сканирование\Договора\*.pdf \\fileserver\Scan\*.pdf /D
     
    Но не смотря на ключ "/D" каждый раз xcopy выдает запрос на перезапись файлов которые уже были скопированы ранее. В чем затык? Уже голову сломал!

    Всего записей: 27 | Зарегистр. 16-06-2005 | Отправлено: 08:32 07-07-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GRiMka
    я с такими ключами копирую:

    Код:
    xcopy "путь\имя_файла" "%windir%\SYSTEM32\" /Q /H /Y /K /C


    Цитата:
    Но не смотря на ключ "/D"
    ключ D всего лишь сравнивает по дате, это не значит что другие ключи не нужны.

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 09:10 07-07-2011 | Исправлено: AZJIO, 09:16 07-07-2011
       

    Страницы: 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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 10
    vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru