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

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



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VitRom
    2-ой вариант строки - это то, что и требовалось...
    Спасибо.
     
    А можно ли от имен вида
    Код:
    xyz07,08,08(05-06-51).png
    есть возможность перейти к
    Код:
    xyz2008.08.07 (05-06-51).png
    ? (я про этот вариант писал во второй части самого первого сообщения)
     
    P.S. Для VitRom

    Всего записей: 623 | Зарегистр. 20-12-2005 | Отправлено: 17:20 07-08-2008 | Исправлено: 19w85, 00:53 08-08-2008
    Elroir



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

    Цитата:
    возможно ли делать вывод и в файл и на экран?

    Шапка->"Полезные утилиты"->утилита "mtee"

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 20:56 07-08-2008
    NIKZZZZ



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

    Цитата:
    возможно ли делать вывод и в файл и на экран?  


    Код:
    for /F "usebackq delims=" %%i in (`command`) do echo %%i&echo %%i>>FileLog.txt


    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 21:04 07-08-2008
    Flashkens



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужен следующий батник:
    В файле config.ini нужно изменить строку с "ProxyHost=10.18.0.3" на "ProxyHost=192.168.1.111" написал следющее:
     
    for /f "tokens=*" %%i in (Config.ini) do (if not %%i==ProxyHost^=10.8.0.3 echo %%i>>config2.ini  
    if %%i==ProxyHost^=10.18.0.3 echo ProxyHost=192.168.1.111>>config2.ini)
    del config.ini
    ren config2.ini config.ini
     
    Но батник находит строку, заменяет а потом еще раз пише старый хост типа:
    ProxyType=HTTP(S)                              
    ProxyHost=192.168.1.111  
    ProxyHost=10.18.0.3  
    ProxyPort=3128                              
     
    Возможно мне нужно увеличить счетчик на +1 но как не знаю...

    Всего записей: 3 | Зарегистр. 08-08-2008 | Отправлено: 13:02 08-08-2008
    igor_andreev

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

    Код:

    for /f "tokens=*" %%i in (Config.ini) do (
      echo %%i | find /i "ProxyHost" && echo ProxyHost=192.168.1.111 >>config2.ini || echo %%i >>config2.ini
    )  

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 13:17 08-08-2008
    Elroir



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

    Код:
     
    for /f "tokens=*" %%i in (Config.ini) do (
    if "%%i"=="ProxyHost=10.18.0.3" (
    echo ProxyHost=192.168.1.111>>config2.ini) else (
    echo %%i>>config2.ini)
    )
    del config.ini
    ren config2.ini config.ini
     

     
    Добавлено:
    igor_andreev

    Не обновил страничку.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 13:28 08-08-2008 | Исправлено: Elroir, 13:29 08-08-2008
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    А я тоже сначала такой вариант, как у тебя хотел предложить. Потом подумал - если ненароком в config.ini пробел будет после значения, то будет спотыкаться
    "ProxyHost=10.18.0.3 " не равно "ProxyHost=10.18.0.3".  
    Или "ProxyHost = 10.18.0.3" не равно "ProxyHost=10.18.0.3".

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 13:45 08-08-2008 | Исправлено: igor_andreev, 13:49 08-08-2008
    Joolz

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Или еще быстрее sed config.ini -i -e "s/10.18.0.3/192.168.1.111"

    Всего записей: 100 | Зарегистр. 24-01-2008 | Отправлено: 13:46 08-08-2008 | Исправлено: Joolz, 13:51 08-08-2008
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev
    Я уже после того, как выложил код, именно об этом и подумал


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 14:52 08-08-2008
    lamener

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго всем времени суток !!
    Задача !!
    Есть некий текстовый документ пусть будет 1.txt взять из него первую строку!
     Узнать длину строки если длина строки превышает 1024 символа! то разбить строку на две строки и записать в другой текстовый документ 2.txt  
    в виде :  
    строка 1
    строка 2  

    Всего записей: 25 | Зарегистр. 23-07-2008 | Отправлено: 17:05 08-08-2008
    Tipulatoid



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

    Цитата:
     Узнать длину строки если длина строки превышает 1024 символа! то разбить строку на две строки

    Разбить по какому критерию? Т.е. сколько символов в первой, сколько во второй?

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 17:45 08-08-2008
    Elroir



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

    Код:
     
    @echo off
    setlocal
    set /p txt=<1.txt
    if not "%txt:~1024%"=="" (
    echo %txt:~0,1024%>2.txt
    echo %txt:~1024%>>2.txt
    )
     


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 17:56 08-08-2008
    Booba

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Народ ткните лпиз носом, где почитать про создание архивного бэкапа с помощью winrar с помощью bat файла. Т.е. существует папка которую надо бэкапить раз в сутки в другую папку  без удаления фалов и с разным именем архива в зависимости от даты. Желательно, чтоб батничег запускался как сервис.
    Заранее спасибо.

    Всего записей: 26 | Зарегистр. 30-01-2006 | Отправлено: 18:09 08-08-2008
    igor_andreev

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

    Цитата:
    ткните лпиз носом

    Есть два места, куда надо тыкаться носом в первую очередь.  
    1. Мануал. В папке, куда установлен WinRAR, есть два файла, WinRAR.chm и Rar.txt. В них есть ВСЕ.
    2. Гугль. Достаточно набрать что-нибудь вроде "бэкап с помощью winrar" и найдешь кучу ссылок, статей, обсуждений на форумах, примеров командной строки и т.п.
     
    И в последнюю очередь, если после хелпа и гугля что-то не получается, пиши тут командную строку, которая не совсем правильно работает, авось и подскажет кто...
     

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 19:03 08-08-2008 | Исправлено: igor_andreev, 19:07 08-08-2008
    pgofman2

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Нужна помощь
    в создании списка всех файлов диска или папки с ее поддиректориями
    средствами bat исполняемого скрипта
     
    итогом работы скрипта - нужет текст в таком виде
     
    ("diskname","path","filename","extention","size","datemodif")
     
    этот список файлов нужен -  для создания SQL файлов с лазерных болванок
     
     
    заранее спасибо за помощь!

    Всего записей: 66 | Зарегистр. 07-09-2006 | Отправлено: 19:36 08-08-2008
    01MDM



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

    Код:
     
    @echo off
    chcp 1251 1>nul
    if "%~1"=="" echo No Parameters && goto:eof
    for /f "tokens=*" %%i in ('dir /b /s /a %1') do (
        echo "%%~di","%%~pi","%%~ni","%%~xi","%%~zi","%%~ti" 1>>list.txt
    )
     

     
    Вместе с папками, если только файлы, то исправь `dir /b /s /a-d %1`
    Запускать `this.cmd "Path\To\Some Folder"`

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

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    01MDM
     
    СПАСИБО ОГРОМНОЕ  
    РАБОТАЕТ ВЕЛИКОЛЕПНО

    Всего записей: 66 | Зарегистр. 07-09-2006 | Отправлено: 01:00 09-08-2008
    19w85



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А может кто-нибудь подсказать, возможно ли через батник переименовывать имена вида "xyz07,08,08(05-06-51).png " в "xyz2008.08.07 (05-06-51).png" ?
    (под "xyz" подразумевается текст произвольной длинны)
     
    Переименование таких имен без текста в начале имени мне уже тут VitRom подсказал (спасибо ему), но хотелось бы еще более универсальный вариант...

    Всего записей: 623 | Зарегистр. 20-12-2005 | Отправлено: 09:45 09-08-2008
    lamener

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

    Код:
     
    @echo off
    setlocal
    set /p txt=<1.txt
    if not "%txt:~1024%"=="" (
    echo %txt:~0,1024%>2.txt
    echo %txt:~1024%>>2.txt
    )
     

    Выдает ошибку ! Непредвиденное появление: ..

    Всего записей: 25 | Зарегистр. 23-07-2008 | Отправлено: 11:00 09-08-2008
    NIKZZZZ



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

    Цитата:
    переименовывать имена вида "xyz07,08,08(05-06-51).png " в "xyz2008.08.07 (05-06-51).png"  


    Код:
    ::Echo off
    for %%i in (*.png) do call :RenFile "%%~i"
    Goto :eof
    :RenFile
    set "name=%~n1"
    set "names=%~sn1"
    set "name1=%name:~0,-18%20%name:~-12,2%.%name:~-15,2%.%name:~-18,2%%name:~-10%"
    ren "%~dp1%names%%~x1" "%name1%%~x1"
    Goto :eof


    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 15:41 09-08-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