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

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



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    pavel1978,если я не ошибаюсь,смотри чуть выше,и посмотри на ответы уважаемого,Grim_Repo. В частности,на ответы,которые он давал мне!!!

    Всего записей: 858 | Зарегистр. 20-01-2008 | Отправлено: 09:45 11-04-2008
    ipmanyak



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    pavel1978 1  -  бери пути и имена файлов в кавычки
    пример:  
    "C:\Program Files\WinRAR\Rar.exe" u -m2 X:\Pavlov\pavlov "C:\Мои документы"  
    2 - Кто пишет кракозябры? В каком редакторе работаешь и в какой кодировке? Видимо юзаешь notepad? Он пишет в кодировке WIN, а нужно слать в кодировке DOS. Пользуйся прогой  FAR вместо notepad (его встроенным редактором).  


    ----------
    В сортире лучше быть юзером, чем админом...

    Всего записей: 11724 | Зарегистр. 10-12-2003 | Отправлено: 10:17 11-04-2008
    pavel1978

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    с первым разобрался, спасибо!
    Со вторым вопросом - даже без батника, делая нет сенд такого рода:
    пуск\выполнить\cmd,  далее net send domainname Тут я пишу русскими a tut latinskimi,
    латынь понимает, русский - нет. Даже из-под дельфи когда юзаю - та же картина. Т.е. это сама командная строка "глючит". Где в ее свойствах кодировку поправить?

    Всего записей: 149 | Зарегистр. 13-03-2008 | Отправлено: 11:03 11-04-2008
    Simple Crypt



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    pavel1978
    Не факт, что поможет, но попробуйте в сеансе CMD перед net send выполнить
    chcp 1251

    Всего записей: 73 | Зарегистр. 21-10-2003 | Отправлено: 11:46 11-04-2008
    HelpAbout



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Приветствую!
    Никак не могу разобраться каким образом, без приминения дополнительных программ типа gsar организовать поиск по текстовому файлу и замену текста. Смысл вот в чем, существует документ (ini - файл), который лежит в директории С:\Program Files\Client\Setup.ini, внутри него необходимо найти и заменить строчку Firewall=1 на Firewall=0, хотел попросить Вашей помощи.

    Всего записей: 25 | Зарегистр. 11-04-2008 | Отправлено: 11:57 11-04-2008
    vint321

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть проблема:
    существует папка с ~ 1500 файлами (tif) средний размер файла 45mb, чтобы просмотреть такое количество снимков такого размера нужна минимум неделя (машина тупит жутко), поэтому я конвертнул их в jpg (в соседнюю директорию) – просмотрел ненужное убил.
    Вопрос как сделать batник который прочитал бы содержимое папки с jpg а затем убил  в папке с tifами лишние файлы.

    Всего записей: 7 | Зарегистр. 11-04-2008 | Отправлено: 12:42 11-04-2008
    king_stiven

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

    Код:
    @echo off
    for %%c in ("E:\split\батники\батники проба\*.tif") do (
        if not exist "E:\split\батники\батники проба\00\%%~nc.jpg" del "%%c"
    )

    В папке E:\split\батники\батники проба\ tif файлы, имена которых не будет у jpg файлов в папке E:\split\батники\батники проба\00\, будут удаляться. Ещё смотри ключи к команде del.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 14:48 11-04-2008
    vint321

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

    Всего записей: 7 | Зарегистр. 11-04-2008 | Отправлено: 15:10 11-04-2008
    Simple Crypt



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    HelpAbout
    @echo off
    setlocal
    for /f "usebackq tokens=*" %%i in ("С:\Program Files\Client\Setup.ini") do (
    if /I "%%i"=="Firewall=1" (echo Firewall^=^0>>"С:\Program Files\Client\Setup.temp")
    else (echo %%i>>"С:\Program Files\Client\Setup.temp")
    )
    move /y "С:\Program Files\Client\Setup.temp" "С:\Program Files\Client\Setup.ini"
    endlocal

    Всего записей: 73 | Зарегистр. 21-10-2003 | Отправлено: 15:51 11-04-2008
    slech



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    всем привет.
    подскажите пожалуйста как в текстовом файле удалить из начала строки скажем 10 первых символов.
    во всех строчках.
     
    спасибо.

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 16:22 11-04-2008
    Elroir



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

    Код:

    ::Начало батника
    @echo off
    ::Первая часть
    for /D %%A in (E:\service\logs\*.*) do "C:\Program Files\WinRAR\RAR.exe" -ac -ed A "%%A.rar" "%%A"
    ::Вторая часть
    setlocal enabledelayedexpansion
    set "source=E:\service\logs\"
    set "dest=\\test\TEST_BACKUP\Logs\"
    set "01=January" & set "02=February" & set "03=March"  
    set "04=April" & set "05=May" & set "06=June"  
    set "07=July" & set "08=August" & set "09=September"  
    set "10=October" & set "11=November" & set "12=December"
    pushd "%source%"
    for %%a in (??.??.????.rar) do call :move_file "%%a"
    popd
    goto :EOF  
    :move_file  
    set "file=%~1"  
    for %%b in (01 02 03 04 05 06 07 08 09 10 11 12) do (  
    if %file:~3,2%==%%b (md "%dest%!%%b!" 2>nul & move /y "%file%" "%dest%!%%b!\")  
    )  

    Батник не тестировался - в данный момент нет возможности.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 16:44 11-04-2008 | Исправлено: Elroir, 16:45 11-04-2008
    Jun1or

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    Огромное спасибо! Всё работает!!!

    Всего записей: 7 | Зарегистр. 04-08-2006 | Отправлено: 09:32 12-04-2008
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    slech

    Цитата:
    подскажите пожалуйста как в текстовом файле удалить из начала строки скажем 10 первых символов.  
    во всех строчках.

    А почему обязательно бат-файлом, а не VBS, например? Скриптом-то быстрее будет...
    И ты не сказал - а если в строке меньше 10 знаков, удалять их все или удалять строку вообще, или оставлять как есть...  

    Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 10:38 12-04-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    slech
     
    Можно конечно каждую строчку циклом загнать в переменную и вывести в другой файл без первых 10 символов:

    Код:
     
    @echo off
    for /f "tokens=*" %%i in (in.txt) do set "line=%%i" && call:write
    goto:eof
    :write
    echo %line:~10%>>out.txt
     

    но sed'ом лучше

    Код:
     
    sed -n "s/^.\{10\}//pg" in.txt >out.txt
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 11:47 12-04-2008
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уважаемые, небольшая просьба - у кого будет желание, сравните на быстродействие с sed. Хочется посмотреть, как по скорости соответствует.  
     Скрипт замены по регэкспам

    Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 13:35 12-04-2008 | Исправлено: Rush, 13:39 12-04-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Rush
     
    in.txt = 1.02 Mb
     
    Вывод запускного батника:

    Код:
     
    14:08:01,62 start vbs
    14:08:02,06 stop vbs
     
    14:08:02,06 start sed
    14:08:02,40 stop sed
     
    14:08:02,40 start cmd
    14:15:36,04 stop cmd
     

     
    sed 00:00:00,00
    vbs 00:00:00,+10  
    cmd - не считал (+ ошибки)
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 14:20 12-04-2008 | Исправлено: 01MDM, 14:22 12-04-2008
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Многовато. Я на глаз тестил файл размером 5.5 мб - задержки не заметил... Ну на глазок и есть на глазок...

    Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 15:51 12-04-2008
    Dmitriy05



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Создаю батник для копирования файла opera6.adr и папки /sessions/ в отдельную папку
     
    С 1й задачей справился быстро:

    Код:
    copy "C:\Opera 8\profile\opera6.adr" C:\Recover\opera6.adr

     
    А вот со вторым - проблема. Я так понял надо сделать так:
    1 Удалить C:\Recover\
    2 Скопировать\sessions\ из паки Оперы
     
    Удаление:

    Код:
    del /q C:\Recover\sessions
    - не удялает

    Код:
    del C:\Recover\sessions
    - не удаляет, но запрашивает удаление:

    Цитата:
    C:\Recover\sessions\*, Продолжить ?

     
    Копирование:
    Перепробовал разные варианты вида

    Код:
    copy "C:\Opera 8\profile\sessions" c:\Recover\
    но тоже не один не работает

    Всего записей: 2514 | Зарегистр. 03-08-2005 | Отправлено: 18:11 13-04-2008
    01MDM



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

    Код:
     
    rd /s /q C:\Recover\sessions
     

     

    Цитата:
    Копирование:
    Перепробовал разные варианты вида  

     
    Без дополнительных ключей к командам, как пример:

    Код:
     
    1. md c:\recover\sessions && copy "C:\Opera 8\profile\sessions" c:\recover\sessions
     
    2. xcopy "C:\Opera 8\profile\sessions" c:\recover\sessions\
     

     
     
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:51 13-04-2008 | Исправлено: 01MDM, 18:55 13-04-2008
    Dmitriy05



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

    Всего записей: 2514 | Зарегистр. 03-08-2005 | Отправлено: 19:26 13-04-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