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

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

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

vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

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





    http://forum.ru-board.com/topic.cgi?forum=62&topic=17154

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 23:07 04-11-2008 | Исправлено: vu1tur, 11:38 26-05-2009
    Koyotpl

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Надо решить задачу.
    есть каталог Z в нем лежат архивы (1111.arj и 2222.rar) в каждом архиве к примеру 2 папки и 3 файла
    как с помощью батника распаковать их в каталог Y чтобы в нем создались папки по названию архива (в даном случае папки 1111 и 2222)  в которых бы и было содержание каждого из архивов по его названию
     
    Добавлено:
    а то как я ни кручу они у меня скопом в каталог Y валяться. и mkdir по маске папки не создает же  а тут вся соль в том чтобі создавались папки по имени файла архива
     
    Добавлено:
    везде каталог куда распаковівать надо указывать явно!
    а тут дело в том что названия архивов могут быть какими хош маска  *.ARG
     
    if not exist C:\tmp\*.ar* goto gnai
    arj   x  *.ar*   c:\tmp\ARH\>> log
    :gnai
     
    ето к примеру распаковівает все ардж архивы из директории C:\tmp\ в c:\tmp\ARH\  но все в 1 кучу а не по папкам

    Всего записей: 2 | Зарегистр. 15-04-2009 | Отправлено: 15:04 15-04-2009 | Исправлено: Koyotpl, 15:08 15-04-2009
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Koyotpl
    Код:
    @echo off
    for %%a in (Z\*) do 7z x -r -aoa -o"Y\%%~na" "%%a"

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 16:10 15-04-2009 | Исправлено: Nagual, 16:12 15-04-2009
    Koyotpl

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Чуствовал пятой точкой что в арджом каши не свариш
    спасибо!

    Всего записей: 2 | Зарегистр. 15-04-2009 | Отправлено: 16:37 15-04-2009
    artrad77



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Предистория. Написал скрипт (script.cmd),  для того чтоб в нем не ковырялись (скорее всего его скомпилирую в будующем) вынес все данные  которые задаются пользователем в отдельный файл (param.ini). Т.е. в этом файле находятся инструкции через rem и переменные которые надо забить  set value=5. Соответственно все будет запускаться c:\script.cmd param.ini        
    Вопрос  - что нужно прописать  в самом script.cmd чтоб он прочел и принял к исполнению команды указанные param.ini

    Всего записей: 5 | Зарегистр. 02-04-2009 | Отправлено: 17:04 15-04-2009
    Mr_Hat



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    artrad77
    мдаа... ни чего не понял, но понравилось

    Всего записей: 984 | Зарегистр. 04-10-2005 | Отправлено: 17:24 15-04-2009
    at200859



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

    Код:
     
    copy param.ini @@@@.bat
    call @@@@.bat
    del @@@@.bat
     

    Всего записей: 53 | Зарегистр. 18-02-2003 | Отправлено: 17:26 15-04-2009
    greenfox



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

    Цитата:
    @Echo Off
     
    Set MyFolder=E:\Temp
     
    CD /D %MyFolder%
    RD /S /Q %MyFolder%  
    это в стиле что текущий каталог не будет удалён по причине "занятости"? В принципе сойдёт


    ----------
    Три вещи вечны: смерть, налоги и потеря данных...

    Всего записей: 4139 | Зарегистр. 29-07-2003 | Отправлено: 17:29 15-04-2009
    lanselotideo1111



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, пожалуйста как можно скопировать в другой файл последние 10 строчек из текстового файла, в котором 1500 строк?

    Всего записей: 33 | Зарегистр. 04-10-2006 | Отправлено: 18:00 15-04-2009
    artrad77



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

    to
    Цитата:
    at200859

     Спасибо  
     А ларчик просто открывался  

    Всего записей: 5 | Зарегистр. 02-04-2009 | Отправлено: 18:07 15-04-2009
    sas1111



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите с вот таким  ВзаимоОбменоМ по FTP . (пользуем ftp.exe)
     
    -_- КОМП1  загружает  
    Если есть файлы                  C:\Otpravka\F1.dat , F2.dat , заRARив  
    их отправляем в FTP в \Comp1\Zagruzka\F1z.rar, F2z.rar,  
     
    Cкачиваем  c FTP с папки (если есть файлы)     Comp2\Otvet\F1otv.rar,  F2otv.rar ,    
     разRARим их в                                                    C:\Prinato\F1otv.dat  ,F2otv.dat , и
    Сравниваем их  с  образцами имеющимися (текст) C:\Obrazec\obraz1.dat , obraz2.dat ,
      Если сравнение верно ,то заRARив      C:\OK\fileOK.dat  
     отправляем на FTP   в                    Comp1\Ok\fileOK.rar  
     Ведем  лог происходящего по ходу происходящего  
    Сохраняем лог в на компе         C:\LOG\YYMMDDhhmm_comp1.log
    И отправляем  на FTP  в    \Comp1\LOG\YYMMDDhhmm_comp1.log
     
     
        -_-КОМП2 (каждый час запускаем)
     -(Если НЕТ файла на FTP              Comp1\Ok\FileOK.rar ,то
     -Скачиваем  с FTP                      \Comp1\Zagruzka\F1z.rar ,  F2z.drar ,
     разархивировов в папку                         C:\ALL\F1z.dat , F2z.dat ,
    преобразовав,(скажем просто скопировав) в C:\ALL\F1otv.dat ,F2otv.dat , и  
    отправляет заRARив на FTP в               Comp2\Otvet\F1otv.rar, F2otv.rar ,
    Подтираем tmp и Закрываемся.
     
    -Если ЕСТЬ файла на FTP                Comp1\Ok\File_OK.rar ,тогда
    скачиваем разRARиваем  его в               C:\ALL\fileOK.dat
    Если скачено без ошибок-то
    - Удаляем с FTP файлы              Comp2\Otvet\F1otv.rar, F2otv.rar ,
    - Удаляем с FTP файлы               Comp1\Ok\File_OK.rar
     
     Ведем лог происходящего по ходу действий  в  C:\ALL\tmp.log  
     И отправляем  tmp.log  на  FTP в   \Comp1\YYMMDDhhmm_comp1.log
    Подтираем tmp.log и другие tmp  
    Закрываемся.                            Может сильно подробно расписал   извиняйте..
     
    Кто Силён в таком обмене.!!              Подсобите.!!.  

    Всего записей: 7 | Зарегистр. 12-04-2009 | Отправлено: 18:23 15-04-2009
    ZeroCrash



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
       Здравствуйте! У меня есть проблема, которую я не могу решить(
    Нужно создать батник чтобы он выполнял программу (которая работает под командной строкой) с определёнными параметрами. Сейчас я лучше покажу пример, т. к. будет понятнее:
     
    -допустим программа, которую нужно запустить, называется prog.exe
    -запустить её нужно вот так: prog.exe c: xyxy-xyxy
      x - это число от 1 до 5
      y - это одна из букв: asdce
    Буквы и цифры могут повторяться, но нужно чтобы при каждом запуски он генерировал значение xyxy-xyxy, либо брал это значение допустим из текстового файла и после выполнения программы удалял значение, которое он взял, из текстового файла.
     Если что непонятно, спрашивайте.
      Очень рассчитываю на вашу помощь!

    Всего записей: 43 | Зарегистр. 15-04-2009 | Отправлено: 21:51 15-04-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ZeroCrash
     
    Где-то так, я только не понял сама программа консольная?
     

    Код:
     
    @echo off
    setlocal enabledelayedexpansion
     
    for %%i in (1,2,3,4) do (
        for %%j in (a,s,d,c,e) do set y_%%i_!random!=%%j
        for %%j in (1,2,3,4,5) do set x_%%i_!random!=%%j
    )
     
    for %%i in (1,2,3,4) do (
        for /f "tokens=4 delims=_=" %%j in ('set x_%%i') do set x-%%i=%%j
        for /f "tokens=4 delims=_=" %%j in ('set y_%%i') do set y-%%i=%%j
    )
     
    :: Если программа консольная
    start /b prog.exe %x-1%%y-1%%x-2%%y-2%-%x-3%%y-3%%x-4%%y-4%
     
    :: Если не консольная
    start "" prog.exe %x-1%%y-1%%x-2%%y-2%-%x-3%%y-3%%x-4%%y-4%
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 23:19 15-04-2009
    NovaC

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

    Цитата:
    Полагаю что весь вопрос в том что бы на текст в в окне обратили внимание.  
    Вариант с очисткой экрана не плох, но если текст тот же,  
    можно просто менять цветовую гамму окна и текста.  
    Но тут уже нужен временной таймер или задержка по ping localhost

    да, нужно обратить внимание на 'конкретную строку'.
    а как изменить 'цветовую гамму окна и текста' ???

    Всего записей: 95 | Зарегистр. 09-01-2008 | Отправлено: 04:46 16-04-2009
    king_stiven

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

    Цитата:
    а как изменить 'цветовую гамму окна и текста' ???  

    COLOR /?

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 07:26 16-04-2009
    Maza_Faka



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

    Цитата:
    скопировать в другой файл последние 10 строчек из текстового файла


    Код:
     
    sed -e :a -e "$q;N;11,$D;ba" < input.txt > result.txt
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 08:28 16-04-2009
    lanselotideo1111



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Респект Maza_Faka. А без доп. утилит такое возможно?

    Всего записей: 33 | Зарегистр. 04-10-2006 | Отправлено: 09:20 16-04-2009
    01MDM



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

    Цитата:
    А без доп. утилит такое возможно?

     
    Возможно, но возможны и ошибки. Стандартными средствами, включая пустые строки:

    Код:
     
    @echo off
    setlocal
     
    for /f "tokens=*" %%i in (file.txt) do set "last=%%i"
    for /f "tokens=1 delims=:" %%i in ('findstr /n /c:"%last%" file.txt') do set "lastNum=%%i"
    set /a skip=lastNum-10
    more +%skip% file.txt 1>new.txt
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 09:34 16-04-2009
    alexagf



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Ребята, подскажите как сделать.
    Необходима команда запуска фала в зависимости от ОС.
    Если х32 - старт Файл-1, если х64 - старт Файл-2

    Всего записей: 1438 | Зарегистр. 23-09-2001 | Отправлено: 09:36 16-04-2009
    greenfox



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    alexagf
    стандартный майкрософтовский вариант
    Цитата:
    @echo off
    if /i "%PROCESSOR_ARCHITECTURE%" == "X86" "%~d0%~p0\x86\setup.exe"
    if /i not "%PROCESSOR_ARCHITECTURE%" == "X86" "%~d0%~p0\x64\setup.exe"


    ----------
    Три вещи вечны: смерть, налоги и потеря данных...

    Всего записей: 4139 | Зарегистр. 29-07-2003 | Отправлено: 10:34 16-04-2009
    vu1tur



    Moderator-Saaber
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    alexagf

    Код:
     
    if _%PROCESSOR_ARCHITEW6432% == _AMD64 (
    echo "x64"
    ) else (
    echo "x86"
    )
     

     
     
    Добавлено:
    greenfox
    не знаю, чем этот вариант стандартен, но работать он не будет. Вот часть окружения с х64 системы:
    Код:
    PROCESSOR_ARCHITECTURE=x86
    PROCESSOR_ARCHITEW6432=AMD64
    PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 15 Stepping 6, GenuineIntel
    PROCESSOR_LEVEL=6
    PROCESSOR_REVISION=0f06


    ----------
    I am free of all prejudice. I hate everyone equally.

    Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 10:39 16-04-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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 6
    vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru