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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    mugil_cephalus

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

    Цитата:
    Ты скорости работы не учитываешь.  
    На довольно маленьких файлах батник будет в даун надолго, а то и совсем.  
     
    Причем sed или vbs на тот же файл потратят максимум пару-тройку секунд.

     
    насчет скорости - не пробовал - не было такой нужды (задачи)
    sed - не OS build-in , a VBS - из другого топика (хотя естественно WSH и задумывался как os build-in для расширения возможностей скриптинга - то, что не по силам cmd, сейчас еще powershell - но не смотрел ее)
    зато, синтаксис батника уж очень красив и, что входит в качественную/эстетическую хар-ку метафоричной "красоты", - краток - для, имхо, непростой задачи

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 13:03 04-11-2009 | Исправлено: mugil_cephalus, 13:34 04-11-2009
    ZolotnikOV



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    можно ли в путях батника использовать кирилицу и больше чем 8 символов?
    спасибо.

    ----------
    — Ах, вы думали? Вы, значит, иногда думаете? Вы — мыслитель? Как ваша фамилия, мыслитель? Спиноза? Жан-Жак Руссо? Марк Аврелий?

    Всего записей: 393 | Зарегистр. 26-11-2007 | Отправлено: 16:56 04-11-2009
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ZolotnikOV а самому попробовать проверить - что-то мешает?
    длинные и русские имена ничем не хуже коротких нерусских.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 17:12 04-11-2009 | Исправлено: wolf0425, 17:14 04-11-2009
    ZolotnikOV



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    спасибо за ответ. ну знаете, метод тыка он канешно очень хорош. но зачем проходить процедуру открытия и испытания того же Тамифлю (препарат от гриппа) если до тебя это уже сделали. А кому сложно ответить (поделиться опытом -ну короче не мне их судить).
    еще раз спасибо.

    ----------
    — Ах, вы думали? Вы, значит, иногда думаете? Вы — мыслитель? Как ваша фамилия, мыслитель? Спиноза? Жан-Жак Руссо? Марк Аврелий?

    Всего записей: 393 | Зарегистр. 26-11-2007 | Отправлено: 17:18 04-11-2009
    wolf0425



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

    Цитата:
    но зачем проходить процедуру открытия и испытания того же Тамифлю (препарат от гриппа) если до тебя это уже сделали
    проверка работает/не работает занимает минуту, написание вопроса на форум плюс получения ответа - часы.
    Со сроками клинических испытаний Тамифлю никакого сравнения.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 20:13 04-11-2009
    ZolotnikOV



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

    ----------
    — Ах, вы думали? Вы, значит, иногда думаете? Вы — мыслитель? Как ваша фамилия, мыслитель? Спиноза? Жан-Жак Руссо? Марк Аврелий?

    Всего записей: 393 | Зарегистр. 26-11-2007 | Отправлено: 21:46 04-11-2009
    king_stiven

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

    Цитата:
    можно ли в путях батника использовать кирилицу и больше чем 8 символов?

    Ответ
    wolf0425

    Цитата:
    длинные и русские имена ничем не хуже коротких нерусских


    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 23:03 04-11-2009 | Исправлено: king_stiven, 23:04 04-11-2009
    19w85



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть вопрос, почему не происходит вывода в файл:

    Код:
    set "x=5"
    echo %x%>>z.txt

     
    Так происходит, но в конец ненужный пробел добавляется:

    Код:
    set "x=5"
    echo %x% >>z.txt

     
    Так тоже происходит вывод, но, соответственно, в файл выводятся еще и ненужные кавычки:

    Код:
    set "x=5"
    echo "%x%">>z.txt


    Всего записей: 623 | Зарегистр. 20-12-2005 | Отправлено: 10:17 05-11-2009
    Elroir



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

    Код:
     
    set "x=5"  
    echo.%x%>>z.txt
     


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 11:32 05-11-2009
    soft111

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте. Помогите пожалуйста сделать такой батник:
    есть 100 текстовых файлов, пронумерованных от 1.txt до 100.txt. В каждом файле 1 слово и пустая строка, так вот как можно удалить эту пустую строку.  
    И еще один вопрос, в текстых файлах в одну строку написаны 2 ссылки одинаковые, как можно с помощью bat файла оставить только один url?
    Буду очень благодарен за ответы.

    Всего записей: 25 | Зарегистр. 05-11-2009 | Отправлено: 12:27 05-11-2009 | Исправлено: soft111, 12:29 05-11-2009
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    19w85
    Цитата:
    Есть вопрос, почему не происходит вывода в файл:  

    потому что пробел с цифрой перед >> трактуется как номер потока
    есть два способа обхода, на выбор:
     
    set "x=5"
    (echo %x%)>>zz.txt  
    1>>xx.txt echo %x%
     
    в отличие от варианта Elroir они делают что ожидаешь и при set "x=Section 1"

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 14:37 05-11-2009 | Исправлено: wolf0425, 14:43 05-11-2009
    mugil_cephalus

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

    Цитата:
    19w85
    Цитата:Есть вопрос, почему не происходит вывода в файл:  
     
    потому что пробел с цифрой перед >> трактуется как номер потока  
    есть два способа обхода, на выбор:  
     
    set "x=5"  
    (echo %x%)>>zz.txt  
    1>>xx.txt echo %x%  
     
    в отличие от варианта Elroir они делают что ожидаешь и при set "x=Section 1"

     
    а что означают потоки с номерами больше 2 (1 - standard output, 2 - errors output) -  3,4,5,....?

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 15:40 05-11-2009
    wolf0425



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

    Цитата:
    а что означают потоки с номерами больше 2
    по умолчанию они вроде свободны, хочешь - пользуйся
    (echo hello) 9>file 1>&9 2>&9

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 15:50 05-11-2009 | Исправлено: wolf0425, 15:57 05-11-2009
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    у меня еще вопрос:
    если я вызываю процедуру в этом же батнике через call и выхожу из процедуры через exit /b, то как быть с exitcode
     
    EXIT [/B] [exitCode]
     
    exitCode    Указывает цифровое значение.  Если указан ключ /B, определяет
                  номер для ERRORLEVEL.  В случае завершения работы CMD.EXE,
                  устанавливает код завершения процесс с данным номером.
     
    номер для errLvl определяет cmd или я могу назначить свой (custom) код для errLvl (которым бы я определял для себя результат отработки процедуры) и каков правильный синтаксис - "exit /b" или "exit /b exitcode" или "exit /b %errorlevel%" или в случае если можно customCode - "exit /b 358"

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 17:35 05-11-2009 | Исправлено: mugil_cephalus, 17:38 05-11-2009
    VisioNRU

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Дорого времени суток!
     задачка такая.  
    есть файл с именем x.bat. я точно знаю что он будет лежать по пути C:\XXXXX\ где XXXXX - имя папки которое  динамически меняется. но файл этот все равно будет там.
    так вот, я запускаю со сменного носителя (флешка, диск) другой батник, из этого батника делаю поиcк  батника x.bat ну примерно так.  
                            dir c:\ /s /b | find "x.bat" > C:\path.txt
                for /F %%i in (C:\path.txt) DO set path=%%i
                start %path%
                del C:\path.txt /q
    а затем  батник x.bat  должен выполнять некие действия (xcopy, reg итд) с файлами  которые лежат в папке XXXXX. НО почему то пишет следующее "xcopy" is not recognized as internal or external command.....
    пытался  также запускать x.bat  с помощью call. но успехом тож не увенчалось
    вправте мне мозги плз.

    Всего записей: 14 | Зарегистр. 17-10-2009 | Отправлено: 18:18 05-11-2009
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    просто exit /b - эквивалент exit /b %errorlevel%
    код выхода конечно можешь сам назначать, "exit /b 358" вполне ожидаемо работает.
     
     
    Добавлено:
    VisioNRU
    Цитата:
    почему то пишет следующее "xcopy" is not recognized as internal or external command.....  
    тебя не смутило что переменная path уже используется системой?

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 18:18 05-11-2009
    VisioNRU

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

    Всего записей: 14 | Зарегистр. 17-10-2009 | Отправлено: 18:27 05-11-2009
    19w85



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

    Цитата:
    потому что пробел с цифрой перед >> трактуется как номер потока

       
    Столько времени гуглил, так и не смог придти к этому ответу
     
    wolf0425

    Цитата:
    есть два способа обхода, на выбор:  
     
    set "x=5"  
    (echo %x%)>>zz.txt  
    1>>xx.txt echo %x%  
     
    в отличие от варианта Elroir они делают что ожидаешь и при set "x=Section 1"

    Огромное спасибо!

    Всего записей: 623 | Зарегистр. 20-12-2005 | Отправлено: 20:03 05-11-2009
    mugil_cephalus

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

    Цитата:
    Столько времени гуглил, так и не смог придти к этому ответу  

    наверное, потому что, google, в отличие от wolf0425, - CIA агент (топик на одном сайте)

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 21:44 05-11-2009
    19w85



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

    Цитата:
    топик на одном сайте

    Этот и предыдущие 6 топиков я пытался просмотреть (версия для печати->но подходящих ключевых слов так и не нашел, чтобы найти ответ на свой вопрос), уже потом был гугл...


    Всего записей: 623 | Зарегистр. 20-12-2005 | Отправлено: 22:14 05-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