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

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

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

vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 109 110 111 112 113 114 115 116 117

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:37 26-05-2009 | Исправлено: TechnicsKuzya, 13:53 27-12-2009
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mouser
    for /l %%a in (3,-1,1) do Echo Sleep %%a min & sleep.exe 60

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 15:14 24-11-2009
    yurkesha



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

    Цитата:
    есть список названий файлов ... мне их нужно все собрать в строку
    без добавочных утилей и ухищрений:
    Код:
    FOR /F "tokens=* delims=" %%a IN (files.lst) DO SET /p=+"%%~a"<nul>>result.txt



    ----------
    Всем непричастным рекомендую прогулки на свежем воздухе

    Всего записей: 2757 | Зарегистр. 15-12-2003 | Отправлено: 15:44 24-11-2009
    BlackBerry

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

    Цитата:
    @echo off  
    setlocal  
     
    for %%i in ("*some string*") do call:ren "%%i"  
    goto:eof  
     
    :ren  
    set "file=%~1"  
     
    :check  
     
    if exist "%file:some string=%" (  
        set "file=1%file%"  
        goto:check  
    )  
     
    ren %1 "%file:some string=%"

     
    Не понятны следующие строчки
     
     "%file:some string=%"
     "file=1%file%"
     
    Где об этом можно почитать ?
     

    Всего записей: 196 | Зарегистр. 08-09-2004 | Отправлено: 16:48 24-11-2009
    wolf0425



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

    Цитата:
     "%file:some string=%"
     "file=1%file%"
    Где об этом можно почитать ?  
    set /?

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 17:19 24-11-2009
    BVV63



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вот ещё вопрос. For %%A In (*.*) Do (...) не видит файлы, имеющие аттрибуты Hidden и System. Можно это побороть, не сбрасывая аттрибуты? Я пытался предварительно составить список файлов посредством "Dir /A- /B", но тогда в список включаются и каталоги.
     
    Добавлено:
    Попробовал ForFiles, тоже отчего-то не все файлы видит. К примеру, на системном диске видит boot.ini, NTDETECT.COM и pagefile.sys, а ntldr - нет. Хотя у ntldr и у NTDETECT.COM аттрибуты одни и те же.

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 09:00 25-11-2009 | Исправлено: BVV63, 09:40 25-11-2009
    NIKZZZZ



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

    Цитата:
    "Dir /A- /B", но тогда в список включаются и каталоги.  

    Dir /a-d исключит каталоги.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 09:45 25-11-2009
    vmazur47

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

    Всего записей: 17 | Зарегистр. 11-07-2008 | Отправлено: 11:19 25-11-2009
    BVV63



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vmazur47
    <Путь>\Rar.Exe A <Путь>\%Date%.Rar <Путь>\*.ttt

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 11:24 25-11-2009 | Исправлено: BVV63, 11:28 25-11-2009
    vmazur47

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

    Цитата:
    <Путь>\Rar.Exe A <Путь>\%Date%.Rar <Путь>\*.ttt

     
    Даная команда добавляет в архив с названием текущей даты все файлики с раширением ttt.
    А нужно чтоб смотрело на дату создания файлов *.ttt и добавляло их в архив с такой же датой.

    Всего записей: 17 | Зарегистр. 11-07-2008 | Отправлено: 12:08 25-11-2009
    mouser

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vmazur47
     
    for %%a IN (*.txt) DO call :1 %%a
    goto :eof
     
    :1
    rar.exe a %1.rar %1
    goto :eof

    Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 12:20 25-11-2009
    vmazur47

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mouser
    Не могли бы Вы всё-таки расписать более детально эту команду? Просто поробовал запустить следующее:
     

    Цитата:
    for %%a IN (d:\1\*.txt) DO call :1 %%a
    goto :eof
     
    :1
    rar.exe a %1.rar %1
    goto :eof

     
    так оно мне посоздавало на каждый файлик отдельный архив с имененм файла, при этом не обращая внимания на дату. А мне как раз таки нужно собрать все файлы например за 01.11.09 в один ахив с таким же именем, потом за 02.11.09 и так далее.

    Всего записей: 17 | Зарегистр. 11-07-2008 | Отправлено: 13:01 25-11-2009
    mouser

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

    Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 13:29 25-11-2009
    NIKZZZZ



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

    Цитата:
    собрать все файлы например за 01.11.09 в один ахив с таким же именем


    Код:
    for %%a IN (d:\1\*.txt) DO call :1 "%%a" %%~ta
    goto :eof
     
    :1
    rar.exe a %2.rar %1
    goto :eof  


    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 13:34 25-11-2009 | Исправлено: NIKZZZZ, 13:37 25-11-2009
    vmazur47

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

    Цитата:
    формат даты фиксирован ???

    можно любой, лишь бы было понятно за какое число файлики...
     
     
    Добавлено:

    Цитата:
    Код:
    for %%a IN (d:\1\*.txt) DO call :1 "%%a" %%~ta
    goto :eof
     
    :1
    rar.exe a %2.rar %1
    goto :eof  
     

     
    Спасибо, этот код работает так как надо.

    Всего записей: 17 | Зарегистр. 11-07-2008 | Отправлено: 13:41 25-11-2009
    mouser

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    у меня %date:~0,2%%date:~3,2%%date:~6,4%
    возвращает 25112009
     
    for %%a IN (d:\1\*%date:~3,2%%date:~6,4%.txt) DO call :1 %%a %%~ta
    goto :eof
    :1
    rar.exe a %2.rar %1
    goto :eof  
     
    вот это с архивит за 11 месяц 2009 года
     
    Добавлено:
    обрезать с начала и до определенного порядкового номера символа можно, а как обрезать концовку
    тоесть будет много файлов разной длины и из их названия нужно вырезать .bat
     
     
    set BATs=rename.bat
    echo %BATs:~0,4%

    Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 13:55 25-11-2009
    alexcoolmagic

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите, как проверить, что переменная, переданная в командный файл (%1), состоит из двух цифр (00 - 99) и отличить этот случай от других вариантов (например: 0, 7A 001, aa, x, asd и т.п.)

    Всего записей: 54 | Зарегистр. 20-08-2002 | Отправлено: 18:04 25-11-2009
    01MDM



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

    Код:
     
    echo %1 | 1>nul findstr /b "\<[0-9][0-9]\>" || echo wrong param %1
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:42 25-11-2009
    NIKZZZZ



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

    Код:
    Set var=%1
    Set "xx=%var:1=0%"
    Set "xx=%xx:2=0%"
    Set "xx=%xx:3=0%"
    Set "xx=%xx:4=0%"
    Set "xx=%xx:5=0%"
    Set "xx=%xx:6=0%"
    Set "xx=%xx:7=0%"
    Set "xx=%xx:8=0%"
    Set "xx=%xx:9=0%"
    if %xx%==00 echo Ok


    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 18:50 25-11-2009
    VisioNRU

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

    Цитата:
    VisioNRU  
    Попробуй его запускать из его рабочей директории. Т.е сначала перейди в его каталог:  
     
    Код:
     
    pushd "\Path\To\Installer's Folder"  
    start setup.exe  
    popd  

     
    не помогло... в общем или инсталлер кривой, или бубен неправильный.
     
    сделал след образом:
     
    xcopy %CD:~0,2%\"путь"\setup.exe "c:\" /r /y
    start c:\setup.exe
    pause
    del C:\setup.exe /f
    pause
     
    так запустилось без проблем.

    Всего записей: 14 | Зарегистр. 17-10-2009 | Отправлено: 21:55 25-11-2009
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VisioNRU
    попробуй start /d

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 23:13 25-11-2009
       

    Страницы: 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 109 110 111 112 113 114 115 116 117

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 7
    vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru