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

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

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

vu1tur (11-09-2007 15:22): продолжаем в теме Задачи на bat-файлах 4  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:54 27-04-2007 | Исправлено: Elroir, 03:59 10-09-2007
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кстати про Herbert-a Kleebauer-a. Я иногда копипастю его варианты батников из всяких news-групп, вот, что сейчас нашел у себя, сюда положу hk_batch.zip (24 Кб)
    А то там в шапке только его sbs2.com. Описание к каждому батнику лениво делать, сами разберетесь. Но варианты интересные, типа раскрашивания текста в консоли, или батник, который при нажатии BackSpace вводимый пароль показывает звездочками, файл разрезать на части, его манипуляции с датами... В общем, кто не читает alt.msdos.batch, alt.msdos.batch.nt - качните, поприкалывайтесь

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 17:28 20-05-2007 | Исправлено: igor_andreev, 17:29 20-05-2007
    Maza Faka



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

    Цитата:
    А вот это опять не ясно

    Говоря простым языком:
    создаём bat-файл
    удаляем несуществующую переменную
    set a= (здесь происходит ошибка, так, как переменная не была ранее определена)
    смотрим код ошибки
    echo %errorlevel% (он равен "1", всё правильно)
    создаём переменную
    set a=1 (здесь команда завершилась успешно, значит %errorlevel% должен равнятся "0")
    смотрим код возврата
    echo %errorlevel% (выдаёт "1", хотя должен выдать "0")
    что произошло? а произошло, то, что bat-файл игнорирует успешные команды с переменной "SET" и везде будет выдавать код с номером 1
     
    Проделай то же самое, только переименуй *.bat в *.cmd - и сценарий будет выдавать коды возврата для каждой команды в соответствии с тем, как выполнилась команда, то есть если успешно, то "0", если нет, то "1"
     
    Надеюсь понятно обьяснил...
    Ты это...что не понятно, не стесняйся, спрашивай.

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 18:24 20-05-2007
    Elroir



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

    Цитата:
    Так... Молчание - золото. Типа: "отвяжись, дура, а то уже пятый час".  Ну что ж. По домам.

       
    Когда в теме появляется новое сообщение, мне на мейл приходит уведомление об этом - так я знаю, что надо посмотреть тему. Если же ты редактируешь свое сообщение, например добавляешь что-либо - никакого уведомления на мейл не отсылается, соответственно в тему я не заглядываю.  
     
    Добавлено:

    Цитата:
    в .CMD будут устанавливать код ошибки (errorlevel) независимо от того, произошла какая-либо ошибка при работе или нет.

    Эту фразу следует понимать так - если команда завершилась без ошибок, CMD установит код возврата 0 (чти и означает без ошибок), если была ошибка - CMD установит код этой ошибки. BAT, если команда завершилась без ошибок, ничего устанавливать не будет, то есть errorlevel будет равен тому, что установила предыдущая команда закончившаяся с ошибкой. А как это работает в примере igor_andreev-а, описал Maza Faka.  


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 18:38 20-05-2007
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    может кто посоветет консольную утилиту поиска/замены текста в файле (с регэкспами), правильно понимающую русский текст в win-1251?
    правильно - это к примеру считающую русские буквы частью \w и обрабатывающую их апперкейсы однотипно с английскими.
     
    то ли sed из unixutils туп и такого принципиально не понимает, то ли я напрочь не понимаю как ему объяснять...
     
    ps: чтение параметров поиска/замены из файла - наверно тоже обязательное условие.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 22:50 20-05-2007 | Исправлено: wolf0425, 22:54 20-05-2007
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SBReplacer 1.59 (13 Kb!)  Программа для замены (удаления) текста в группе текстовых файлов, выбранных по маске, начиная с указанной папки. Использование списка замен. Встраивание в контекстное меню папок. Drag папок из среды в программу.
     
    В последнее время для замены текста на сайте пользуюсь только ею.
     
    А также куча других мелких программ (3–10 Kb) на сайте http://serbis.pisem.net/
     
    Сам не тестил, не знаю, инфа взята с другого форума

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 23:11 20-05-2007
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nagual
    Цитата:
    Программа для замены (удаления) текста в группе текстовых
    программа не делает НИЧЕГО из того что я просил - ни интерфейса командной строки нет, ни стандартных регэкспов не понимает, ни списка команд последовательной обработки не имеет.
     
    А интеграция с эксплорером и гуевый драгэнддроп  - это для какого-то другого раздела форума...
     
    ps: мне не нужна 1 простая замена в 1000 файлов в подкаталогах с ручным вводом заменяемого текста.
    мне надо за раз обрабатывать 1 файл - но сделать в нем последовательно штук 100 разных замен.
    а через 5 минут, час или на следующий день - будет следующий файл на те же ~100 замен.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 23:41 20-05-2007 | Исправлено: wolf0425, 23:55 20-05-2007
    pom205

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

    Всего записей: 555 | Зарегистр. 03-06-2006 | Отправлено: 02:11 21-05-2007 | Исправлено: pom205, 03:39 21-05-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    pom205
    Какое отношение все это имеет к теме "Задачи на bat-файлах"?

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 02:57 21-05-2007
    euheny



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    Цитата:
    Как определить в какой папке winxp ?

    Цитата:
    echo %windir%

    Не ужели я такой не модный?
    Все привыкли к конкретике - чуть ли не пароли указывают...
     
    Вобщем нашёл обходной путь , но тем не менее всё же интересно какие будут варианты
     
    p.s. Речь конечно же о дифферентной winxp , т.е. мы имеем некий диск (буква известна) , естественно с папками , вот и нужно определить ...

    Всего записей: 4052 | Зарегистр. 22-11-2006 | Отправлено: 03:56 21-05-2007
    Maza Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    euheny
    Тупо, по поиску какого нибудь системного файла например

    Код:
     
    Pushd D:\
    Dir /b /s /a:-d explorer.exe
    Popd
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 08:02 21-05-2007 | Исправлено: Maza Faka, 08:04 21-05-2007
    GORA2



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите. Есть ли причины по которым батник, работающий в winXP SP2, может не работать в win2003? Может там какие то команды не поддерживаются или еще что то?
    Понимаю, что вопрос глуповато звучит и будут "приведи конкретный батник, а там посмотрим". Но он достаточно большой и причины его неработоспособности могут быть и не в нем, а в чем то другом. Меня интересует только есть ли отличия в работе cmd.exe в этих двух системах?

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 09:02 21-05-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    GORA2
    Все функции из ВинХР поддерживаются в 2003
     
    На какой строке не выполняется
    отключи echo off и посмотри что не так

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 09:48 21-05-2007
    GORA2



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
    У меня у самого нет 2003 и нет нормального дистрибутива. Тот который есть не желает ставиться на виртуалку (пишет не найдено место для своп файла). По сему проверить сам этого не могу . Вот и спрашиваю здесь. Возможно дело в Quick Batch File Compiler в который у меня упакован батник, но он вроде должен работать в 2003-м!?

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 10:00 21-05-2007
    KapralBel



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

    Цитата:
    Quick Batch File Compiler
    - 90% - причина
    но есть еще 10%

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:56 21-05-2007
    JohnRD

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    день добрый
     
    каким образом можно запустить cmd после перезагрузки машины
     
    если добавить сюда путь к cmd с:\1.cmd получиться либо нет?
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
     
    спасибо

    Всего записей: 205 | Зарегистр. 29-08-2004 | Отправлено: 14:01 21-05-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    JohnRD
    А планировщик - стандартный позволяет

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 14:27 21-05-2007
    Maza Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    JohnRD
    Да, получится, но только один раз, после перезагрузки значение в  "RunOnceEx" удалится. Батник выполнится до загрузки explorer-a...

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 15:22 21-05-2007
    Elroir



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

    Цитата:
    Не ужели я такой не модный?

    Ну... раз ты сам так говоришь...
    Каким образом, из фразы "Как определить в какой папке winxp ?" можно было понять, что надо найти папку не запущеного Windows на каком-то диске? Телепаты - они не здесь, для них есть специальная тема.
    По вопросу:

    Код:
     
    @echo off
    for /r буква_диска:\ %%a in (.) do if exist %%a\win.ini echo %%~dpnxa
     

    Вместо win.ini может быть любой уникальный файл из папки Windows.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 15:29 21-05-2007
    NIKZZZZ



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

    Цитата:
    Как определить в какой папке winxp

     
    dir /b /s /a:d c:\system32
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 15:44 21-05-2007
    alfer1979

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день
    Нужна помощь в решении такой задачи
    Есть несколько файлов: text1.txt, text2.txt, text3.txt, text4.txt
    Необходимо чтобы создался такой файл: из первого файла первые 20 строк, из второго 15 строка, из третьего 15 строка, из четвертого 15 и 16 строка
    Большое спасибо за помощь!

    Всего записей: 83 | Зарегистр. 12-05-2003 | Отправлено: 00:32 22-05-2007
       

    Страницы: 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-файлах 3
    vu1tur (11-09-2007 15:22): продолжаем в теме Задачи на bat-файлах 4


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru