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

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

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

vu1tur (27-04-2007 11:55): продолжаем в теме «Задачи на bat-файлах 3»  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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-файлах (часть 1)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 16:59 14-11-2006 | Исправлено: Elroir, 04:30 26-04-2007
    igor_andreev

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

    Цитата:
    Так вот мне и надо подключать VPN-ку постоянно... может можно всетаки сделать подключение без подтверждения?

    А ты поленился посмотреть в rasphone.pbk Там есть название твоего VPN соединения и есть все параметры, о которых я писал на прошлой странице, дабы не тыркать кнопку.

    Всего записей: 1674 | Зарегистр. 08-12-2004 | Отправлено: 17:29 08-12-2006
    Jon_Dow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спешу поделиться:
    Код:
    FOR /F "usebackq tokens=1 eol=  skip=1 delims= " %%a IN (`help^|findstr /B /V /C:"         "`) DO help %%a >>%%a.txt
    - вывод хелпов по всем командам консоли XP/2K/2003 в текстовые файлы с соответствующим именем... Удобно для полнотекстового поиска и общего ознакомления...

    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 01:20 09-12-2006
    drondo



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Только не пинайте сильно  
    Помогите создать батник, который создает список всех файлов в данной папке.
    "Создание листинга директорий на примере создания плейлиста" в шапке прочитал, но мне нужно чтобы было без подкаталогов. И возможно ли упорядочить этот список по дате создания/изменения/имени/типу, т.е. самому выбирать в каждой конкретной ситуации?

    Всего записей: 461 | Зарегистр. 28-10-2005 | Отправлено: 01:50 09-12-2006
    Elroir



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

    Код:
     
    @echo off
    dir /b /a-d /on %1>listing.txt
     

    В качестве параметра батнику передается путь к нужной директории.
    сортировка по имени           - /on (в примере)
                      по расширению - /ое
                      по размеру        - /os
                      по дате             - /od
    Если надо сделать сортировку в обратном порядке - ставим после "/o" знак "-".
    Например: /о-n.
     
    Добавлено:
    Забыл сказать - если путь к директории содержит пробелы, надо взять его в кавычки.

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 02:04 09-12-2006 | Исправлено: Elroir, 02:08 09-12-2006
    drondo



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    в получившимся листинге файлы с русскими именами в кракозябры превращаются. немного усовершенствовал:

    Код:
    @echo off
    mode con codepage select=1251 > nul
    dir /b /a-d /on %1>listing.txt

    спасибо большое.
    А можно ли некоторое подобие интерфейса прикрутить?? т.е. после запуска батника вводишь некоторый параметр, в зависимости от которого меняется тип упорядочивания. например при нажатии "n" -по имени, "d" -по дате и т.д.?

    Всего записей: 461 | Зарегистр. 28-10-2005 | Отправлено: 02:16 09-12-2006 | Исправлено: drondo, 02:20 09-12-2006
    Elroir



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

    Цитата:
    А можно ли некоторое подобие интерфейса прикрутить??  

    Можно.

    Код:
     
    @echo off
    mode con codepage select=1251 > nul  
    setlocal
    set /p sortby=Sort by name=n, extension=e, size=s, date=d ?  
    if /i not "%sortby%"=="n" (
    if /i not "%sortby%"=="e" (
    if /i not "%sortby%"=="s" (
    if /i not "%sortby%"=="d" ( echo Error & goto :EOF ))))
    dir /b /a-d /o%sortby% %1>listing.txt
     

    После вопросительного знака идет один пробел.

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 03:48 09-12-2006
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вопрос
    Не встречался ли кому-либо нормальный компилятор .bat файлов? Программы типа Quick Batch File Compiler всего лишь копируют батник куда-либо и запускают его, такую вещь можно без труда сделать WinRar'ом, и компилятором такие программы назвать никак нельзя.
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 12:48 09-12-2006
    drondo



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    Спасибо большое, почти то что нужно. Еще просьбу можно?
    желательно чтобы были полные имена, т.е. с путем к папке. Это возможно на основе твоего последнего кода?

    Всего записей: 461 | Зарегистр. 28-10-2005 | Отправлено: 00:17 10-12-2006
    Elroir



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

    Цитата:
    желательно чтобы были полные имена, т.е. с путем к папке. Это возможно на основе твоего последнего кода?

    Э... действительно на основе

    Код:
     
    @echo off  
    mode con codepage select=1251 > nul  
    setlocal  
    set /p sortby=Sort by name=n, extension=e, size=s, date=d ?  
    if /i not "%sortby%"=="n" (  
    if /i not "%sortby%"=="e" (  
    if /i not "%sortby%"=="s" (  
    if /i not "%sortby%"=="d" ( echo Error & goto :EOF ))))
    set cur=%cd%\
    pushd %1
    dir /b /a-d /o%sortby%>%temp%\tmp_list
    if exist "%cur%listing.txt" del /q "%cur%listing.txt"
    for /f "tokens=*" %%a in (%temp%\tmp_list) do (
    echo %%~dpnxa>>"%cur%listing.txt"
    )
    del /q %temp%\tmp_list
    popd
     

    Обязательно, после копирования, удалить пробелы в конце строк
     
     
     
    Добавлено:
    NIKZZZZ
    На самом деле, один раз я видел такой. К сожалению, он был 1992 года издания и поддерживал только синтаксис DOS-а того времени.

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 01:31 10-12-2006
    Levitant



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Вопрос по интерфесу. Подскажите плиз, как сделать, что бы, например при нажатии буквы Y (или Enter) искомое действие выполнялось, а при нажатии N оно пропускалось и действие шло дальше или программа закрывалась.
    Заранее спасибо.

    Всего записей: 62 | Зарегистр. 09-11-2006 | Отправлено: 10:35 10-12-2006
    Desenix

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Levitant
    просто по нажатию чисто батником нельзя, нужно еще и Enter жать
    set /p sel="Select & press Enter:"

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



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

    Цитата:
    как сделать, что бы, например при нажатии буквы Y (или Enter) искомое действие выполнялось, а при нажатии N оно пропускалось и действие шло дальше или программа закрывалась.

     

    Код:
    @echo off
    :Again
    Echo Are you shure?
    Set /p Input=
    If /i Not %Input%==N (
    If /i Not %Input%==Y (
    Echo Type 'Y' or 'N'
    pause
    cls
    Goto Again))
    If /i %Input%==Y (
    Echo I am Doing somthing)
    If /i %Input%==N (
    Echo I am Doing somthing else ;-^))
    pause


    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 11:20 10-12-2006 | Исправлено: ViSiToR, 13:44 10-12-2006
    drondo



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    спасибо большое, именно то что мне нужно.

    Всего записей: 461 | Зарегистр. 28-10-2005 | Отправлено: 12:42 10-12-2006
    Levitant



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ViSiToR, спасибо большое, работает. Плохо только то, что надо еще после Y или N Энтер жать,  
    А можно как-нибудь батник перевести в exe?

    Всего записей: 62 | Зарегистр. 09-11-2006 | Отправлено: 13:41 10-12-2006
    ViSiToR



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

    Цитата:
    можно как-нибудь батник перевести в exe?  

    Можно

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 13:49 10-12-2006
    Levitant



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

    Цитата:
    Можно

    А как, если не секрет? И если не сложно расскажи

    Всего записей: 62 | Зарегистр. 09-11-2006 | Отправлено: 14:08 11-12-2006
    ViSiToR



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

    Цитата:
    Спешу поделиться

    Супер, имхо,  в шапку бы это нужно...
    Вот только у меня пчему-то у половины файлов крякозябры прописались
    Я в начале батника поставил chcp 1251 но многие файлы всё же крякозябры отображают (например, xcopy.txt) - я полагаю это из за того, что эта утилита отдельная, и она не кириллицей выдаёт описание - может можно как то сделать определение, т.е если описание передаётся не кириллицей, то сделать код страницы chcp 866 (или как там для латиницы), а если кириллицей, то chcp 1251?
     
    Levitant

    Цитата:
    А как, если не секрет?

    Там я дал не просто текст, это ссылка на архив , в котором есть утилита позволяющая компилировать батники в экзешник.
     
    NIKZZZZ

    Цитата:
    Программы типа Quick Batch File Compiler всего лишь копируют батник куда-либо и запускают его

    А как ты себе представляешь компилляцию батника? это получается нужно перебирать все известные (существующие) комманды ком. строки, все возможные сочетания команд\управляющих\разделителей, и т.п и .т.д. и на основе всего этого, в принципе, писать совсем новую программу?! не забываем о том что нужно ещё и файлы компилировать, т.е для этого должен быть какой то упаковщик, который всё это совместит... в общем, тяжеловато получится , и тем более, не вижу причины делать такую унивирсальную программу, ведь как ни как, речь идёт о батниках, и их исполнение реализуется за счёт уже существующего интерпритатора (начиная с win 98 кажется).

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 15:42 11-12-2006
    MegaSin

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Знающие люди, прошу помощи
    Юзаю в своём батнике be.exe (Batch Enhancer, Norton Utilities 8.0)
    много менюшек, обрамлений, окон и т.д.
    и проблема в том, то что при выполнении всего этого, окно с каждой новой строчкой меняет размер на +-1, а когда загружается то прокрутка справа пропадает... делаеш следующее действие и опять тоже самое
    Вопрос: можно ли как нибудь в начале батника прописать опции чтобы оно было фиксированно размена и не изменялось не при каких условиях?
    Заранее спасибо.

    Всего записей: 25 | Зарегистр. 26-11-2006 | Отправлено: 16:25 11-12-2006
    Jon_Dow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR  
    к сожалению с выводом в кодировке Win1251 ничего пока сделать не удается - по крайней мере чтоб все красиво было...
    Я исходно отрабатывал это чисто для cp866 - там все без вопросов.
    Проблема тут кстати в следующем: chcp 1251 действует на все встроенные команды и они меняют кодировку вывода на Win1251, а команды реализованные отдельными модулями просто игнорируют эту команду и выгоняют свой хелп в кодировке cp866...
    Что-то я сам никак не соображу каким образом можно сменить кодировку текстового файла без применения внешних утилит - может кто подскажет?
     
     

    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 19:24 11-12-2006
    Levitant



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

    Цитата:
    Там я дал не просто текст, это ссылка на архив  , в котором есть утилита позволяющая компилировать батники в экзешник.  

    Ыыыы, спасибо!
    НЕ заметил, ламерством попахивает :-D
     

    Всего записей: 62 | Зарегистр. 09-11-2006 | Отправлено: 20:06 11-12-2006
       

    Страницы: 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-файлах 2
    vu1tur (27-04-2007 11:55): продолжаем в теме «Задачи на bat-файлах 3»


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru