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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    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" и найдешь кучу ссылок, статей, обсуждений на форумах, примеров командной строки и т.п.
     
    И в последнюю очередь, если после хелпа и гугля что-то не получается, пиши тут командную строку, которая не совсем правильно работает, авось и подскажет кто...
     

    Всего записей: 1667 | Зарегистр. 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
    Elroir



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

    Цитата:
    Что то не работает !  

    Приведи пример файла 1.txt, на котором батник падает.
     
    Добавлено:
    Хотя... - если в строке есть спец. символы, тогда ничего не сделаешь.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 16:47 09-08-2008
    19w85



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    Спасибо.
    А можно еще подправить?
    1) чтобы перед скобкой добавлялся пробел
    2) чтобы при обработке имен без текста перед датой "07,08,08(05-06-51).png" не добавлялась 2 раза 20-ка "202007.08.08(05-06-51).png"
    3) При повторном запуске не переименовывались еще раз все файлы *.png а переименовывались только файлы вида "*07,08,08*.png"

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



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

    Код:
     
    @echo off
    setlocal
    for %%a in (*.png) do (
        set "file=%%a"
        for /f "tokens=1-4 delims=,(" %%i in ("%%a") do (
            set _1=%%i
            set _2=%%j
            set _3=%%k
            set _4=%%l
            call:ren
        )
    )
    goto:eof
     
    :ren
    ren "%file%" "%_1:~0,-2%20%_3%.%_2%.%_1:~-2% (%_4%"
     


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



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Из "07,08,08(05-06-51).png" получается "02008 .08 .7  (05-06-51).png"
    Из "xyz07,08,08(05-06-51).png" -> "xyz02008 .08 .7  (05-06-51).png"
    При повторном запуске все эти файлы переименовываются еще раз...
    "xyz02008 .08 .7  (05-06-51).png" -> "xyz02008 .08 .7 20 .05-06-51).png .   ("

    Всего записей: 623 | Зарегистр. 20-12-2005 | Отправлено: 20:22 09-08-2008 | Исправлено: 19w85, 20:23 09-08-2008
    NIKZZZZ



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

    Код:
    Echo off
    for /f "usebackq delims=" %%i in (`dir /b /a-d "*.png"`) do call :RenFile "%%~i"
    Goto :eof
    :RenFile
    set "name=%~n1"
    if not "%name:~-11,1%"==" " (
      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 | Отправлено: 21:02 09-08-2008 | Исправлено: NIKZZZZ, 21:04 09-08-2008
    19w85



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    Что-то переименование вообще не происходит...

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    19w85
    А ты убирал концевые пробелы? Они здесь критичны. Там где set _1 и т.д
    У меня все работает.

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



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Убрал...
    1-ый вариант теперь нормально: Из "xyz07,08,08(05-06-51).png" получается "xyz2008.08.07 (05-06-51).png" -> (повторный запуск) "xyz2008.08.020.05-06-51).png.7  ("
     
    Из "07,08,08(05-06-51).png" -> "2008.08.020.05-06-51).png.7  ("  
     
    Добавлено:
    Добавив пробел и изменив тут маску на "*,??,*.png" все стало работать как надо...
     
    Тут тоже хватило замены маски
     
    NIKZZZZ, 01MDM
    Большое спасибо

    Всего записей: 623 | Зарегистр. 20-12-2005 | Отправлено: 21:44 09-08-2008 | Исправлено: 19w85, 22:28 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.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru