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

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    В шапке темы ссылка на "Пакет утилит для организации интерфейса в bat-файлах" не работает.
     печально.. а так хотелось бы

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Ortios
    Большое Спасибо!
    Мне снова здесь помогли!
    Теперь обрабатывает идеально.  
    Только когда система не срабатывает и баланса не выдаёт, выходит вся строчка.
    Но это уже мелочь.

    Всего записей: 30 | Зарегистр. 15-06-2007 | Отправлено: 22:32 17-11-2009
    Ortios



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

    Цитата:
    вот кто бы научил как прямо на скрипте sed прибить тут лишние строки, чтоб от findstr избавиться... чисто из эстетско-хулиганских мотиваций.


    Код:
    sed -rn "s/^Location.*&ct=([0-9]*).*&so=(-?[,\.0-9]*).+$/\1 \2/gp" 1.txt>_1.txt

    dSasha

    Цитата:
    Только когда система не срабатывает и баланса не выдаёт, выходит вся строчка.

    Заодно и эти строки прибил.

    Всего записей: 73 | Зарегистр. 24-12-2007 | Отправлено: 23:21 17-11-2009 | Исправлено: Ortios, 23:31 17-11-2009
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ortios, спасибо, я и подозревал что это как-то просто делается.
    А type ты зря сократил - файла у заказчика нет, сразу с выхода curl шло
     
    блин, когда же я проникнусь тем как на седе писать. я не про регэкспы, а как раз про команды. Почитать бы чего... простое, что-ли.

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А я эти строки колхозным способом прибил.
    Код:
    | find "&so" |

       
    Через браузер эта процедура иногда очень не быстрая...

    Всего записей: 30 | Зарегистр. 15-06-2007 | Отправлено: 00:52 18-11-2009
    wolf0425



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

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

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Привет всем. Подскажите, плиз, решение такой задачи.
    Имеется переменная произвольного содержания (длина содержания тоже произвольная). Известно лишь, что первый символ - пробел (за ним - смысловой символ). Можно ли как-то преобразовать переменную так, чтобы этот пробел удалился?
     
    Добавлено:
    Убрать нужно только первый пробел, а не все имеющиеся.

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 07:38 18-11-2009 | Исправлено: BVV63, 08:30 18-11-2009
    01MDM



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

    Код:
     
    set "var= qwerty"
    set "var=%var:~1%"
     


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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ещё вопрос. Это не жизненно важно, чисто для эстэтики . Можно ли как-нибудь из под SetLocal EnableDelayedExpansion вывести через Echo знак восклицания? Я попробовал и ^!, но безрезультатно.
     
    Добавлено:
    И ещё, можно ли производить арифметические операции с разименованными переменными?
    Set /A Var=!Var!+1 почему-то не прокатывает.

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



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

    Цитата:
    Echo знак восклицания?


    Цитата:
    Set /A Var=!Var!+1 почему-то не прокатывает.


    Код:
    set var=0
    set xx=!
    SetLocal EnableDelayedExpansion
    Set /A var=var+1
    echo !var!
    echo !xx!

     

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

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

    Цитата:
    Set /a Var+=1


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

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

    Код:
    SetLocal EnableDelayedExpansion
    cmd /c "setlocal disabledelayedexpansion && echo hi! && exit"
     

     
    W:\>1.bat
     
    W:\>SetLocal EnableDelayedExpansion
     
    W:\>cmd /c "setlocal disabledelayedexpansion && echo hi! && exit"
    hi
    W:\>

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 10:35 18-11-2009 | Исправлено: mugil_cephalus, 10:37 18-11-2009
    01MDM



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

    Код:
     
    cmd /?
    cmd /v:off
     


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

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

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    king_stiven
    Со знаком восклицания разобрался, спасибо. С арифметикой тоже, но тут возникла новая проблема. Я и забыл совсем, что из под SetLocal переменные не вытащить так просто. Не знает ли кто фокусов, как их значения можно вытащить, не записывая в файлы и не пользуясь SetX?

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



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

    Код:
     
    @echo off
     
    setlocal
     
    set a=1
    set b=2
     
    endlocal & (
     
    echo %a%
    echo %b%
    set a1=%a%
    set b1=%b%
     
    )
     
    echo %a%
    echo %b%
     
    echo %a1%
    echo %b1%
     

     
     
    Добавлено:
    mugil_cephalus
    Ну и? Я не понял что ты хочешь.
    Команда `setlocal` используется только в командных файлах. Для cmd есть ключ /v:(on | off)

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

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

    Цитата:
    только

    понятно
     
    Добавлено:
    SetLocal EnableDelayedExpansion
    cmd /c /v:off "echo hi! && exit"
     
    W:\>1
     
    W:\>SetLocal EnableDelayedExpansion
     
    W:\>cmd /c /v:off "echo hi! && exit"
    Синтаксическая ошибка в имени файла, имени папки или метке тома.
     
    W:\>
     
    ??
     
    Добавлено:
     
    01MDM
    я хотел сделать сначала как NIKZZZZ  

    Цитата:
     
    set xx=!  
    SetLocal EnableDelayedExpansion  
    echo !xx!  

    а потом подумал через nesting

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 11:44 18-11-2009 | Исправлено: mugil_cephalus, 11:52 18-11-2009
    01MDM



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

    Цитата:
    W:\>cmd /c /v:off "echo hi! && exit"  


    Код:
     
    setlocal enabledelayedexpansion
    cmd /c "echo hi^!"
     

     
    cmd /v:(off|on) /c

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 12:14 18-11-2009 | Исправлено: 01MDM, 12:15 18-11-2009
    mugil_cephalus

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

    Цитата:
    Цитата:W:\>cmd /c /v:off "echo hi! && exit"  
     
     
    Код:  
    setlocal enabledelayedexpansion  
    cmd /c "echo hi^!"  
     

     
    спасибо  ,  
    вот идиотская ошибка  
    попробовал сначала escape-символом - как BVV63
    Цитата:
    попробовал и ^!,  
    , а позже - в nesting'e забыл  
     
     
    Добавлено:
    BVV63
    вот еще вариант, созданный с помощью 01MDM
     

    Код:
    SetLocal EnableDelayedExpansion
    cmd /v:off /c "echo hi^!"
    echo comebackTest!
     

     
    output:
    W:\>1.bat
     
    W:\>SetLocal EnableDelayedExpansion
     
    W:\>cmd /v:off /c "echo hi^!"
    hi!
     
    W:\>echo comebackTest!
    comebackTest
     
    W:\>
     

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 12:46 18-11-2009
    BVV63



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Проверил, действительно значение переменной вытаскивается в вашем примере из под SetLocol. Хотя я и не понимаю почему... Но в моём случае почему-то не работает.
    Может, подскажете в чём дело? Привожу фрагмент в оригинальном виде.
     
    Подробнее...
    Предпоследнее Echo возвращает правильные данные, а последнее - "ECHO is off."
     
    Добавлено:
    Только русский текст в одном из Echo исказился. Видимо из-за настроек в моём браузере.

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 14:07 18-11-2009 | Исправлено: BVV63, 14:14 18-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