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

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

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

KLASS (06-03-2018 00:44): Объединение тем по сценариям: Сценарии Windows
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

hErAx

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

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

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

  • Отправлено: 01:53 25-10-2015 | Исправлено: Paromshick, 21:51 18-12-2017
    deadmz1980



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

    Цитата:
    запасной делай там же: по отдельному расписанию и, по необходимости, в другое место.

    Тоже вариант, спасибо! Сейчас займусь.

    Всего записей: 30 | Зарегистр. 10-07-2009 | Отправлено: 20:23 10-09-2016
    Jon_Dow

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

    ----------
    Я такую личшную нэприязнь испитываю к яндексгуглкасперский, что кушать не могу.:abuse: @Billon

    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 20:31 10-09-2016
    Linksach



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

    Цитата:
    А потом в системную переменную path, добавить путь C:\GnuWin32\bin

     
    Благодарю!Добавил в системную переменную путь C:\GnuWin32\bin
     
    Я понял-это чтобы в след раз батник искал iconv.exe и находил по указанному пути

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 20:53 10-09-2016 | Исправлено: Linksach, 20:57 10-09-2016
    GCRaistlin



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

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

    Использовать %-раскрытие, когда нет уверенности, что выводимое значение не содержит спецсимволов, - дурной тон. Привыкнешь - и твоя жизнь не будет стоить ломаного цента ("Человек с бульвара Капуцинов").
     

    Цитата:
    передать значение локальной переменной наружу

    А вот так:

    Код:
     
    set a=b
    set b=c
    setlocal enabledelayedexpansion
    for /f "delims=" %%A in ("!%a%!") do (
      endlocal
      set d=%%A
    )
    echo %d%
     

    нельзя? Читаемость выше, а время выполнения - ниже.

    ----------
    Magically yours
    Raistlin

    Всего записей: 3960 | Зарегистр. 18-04-2005 | Отправлено: 23:28 10-09-2016
    Jon_Dow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GCRaistlin
    тебе столь интересна тема присвоений?
    Тогда тебе понравится примерПотому как писать:
    Цитата:
    set a=b
    set b=c  
    моветон дурной тон неправильно. Именно поэтому ты можешь предположить наличие "&" в путях на обычной системе...
    Даже в заведомо простых ситуациях надо писать только заведомо устойчивый код - читаемость ниже, время выполнения дольше, зато код выполняет то что должен, а не "как же это у меня получилось"...


    ----------
    Я такую личшную нэприязнь испитываю к яндексгуглкасперский, что кушать не могу.:abuse: @Billon

    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 23:41 10-09-2016
    GCRaistlin



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

    Цитата:
    Потому как писать ... неправильно

    И что тут неправильного?

    Цитата:
    Тогда тебе понравится пример

    Много букв, мало пояснений. К чему вообще это все?

    Цитата:
    Даже в заведомо простых ситуациях надо писать только заведомо устойчивый код

    Ну. А я о чем?

    ----------
    Magically yours
    Raistlin

    Всего записей: 3960 | Зарегистр. 18-04-2005 | Отправлено: 23:49 10-09-2016
    Jon_Dow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GCRaistlin
    Цитата:
    Ну. А я о чем?
    ты даже обычное присвоение пишешь неустойчиво.
    Так что вперед - штудируй cmd /?, set /?, for /? (для начала).

    Цитата:
    Много букв, мало пояснений. К чему вообще это все?  
    это пример как должен выглядеть относительно устойчивый код. А пояснений там достаточно - чай не в начальной школе - отвыкай.
     


    ----------
    Я такую личшную нэприязнь испитываю к яндексгуглкасперский, что кушать не могу.:abuse: @Billon

    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 23:53 10-09-2016
    GCRaistlin



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

    Цитата:
    ты даже обычное присвоение пишешь неустойчиво

    Ну, урони мое "неустойчивое" присвоение. Продемонстрируй примером.

    ----------
    Magically yours
    Raistlin

    Всего записей: 3960 | Зарегистр. 18-04-2005 | Отправлено: 23:58 10-09-2016
    YuS_two



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

    Цитата:
    Использовать %-раскрытие, когда нет уверенности, что выводимое значение не содержит спецсимволов, - дурной тон.

    Мы ведь тут не на приёме у короля программистов, чтобы этикет соблюдать  
    И кстати, не на уроке в школе, чтобы поучения давать и выслушивать...
    Если требуется получить значение конкретной переменной, то наверное, дурной тон предлагать на выбор кучу значений из разных переменных... для себя - пожалуйста, но для совета посмотреть значение конкретной переменной, раскрытие set p, вовсе не годится.
     

    Цитата:
    нельзя? Читаемость выше, а время выполнения - ниже.

    Можно. Я разве говорил о невозможности других вариантов?
    Но я сомневаюсь, что Ваша запись способна передать значение переменной не из цикла
    Скорость, конечно, фактор важный, хотя разница в пару сотых секунд , преимуществ никаких не даёт. А вот читаемость кода - это то, что меньше всего волнует... важнее точность выполнения того, что задумывалось и наименьшая подверженность исключениям.
     
    Ну, хорошо, допустим необходимо передать значение в переменную по конвееру - как бы Вы сделали это?

    Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 14:26 11-09-2016 | Исправлено: YuS_two, 14:37 11-09-2016
    GCRaistlin



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

    Цитата:
    дурной тон предлагать на выбор кучу значений из разных переменных

    У вас их таки куча выдается по 'set p'?

    Цитата:
    для совета посмотреть значение конкретной переменной, раскрытие set p, вовсе не годится

    "Вовсе не годится" определяется исключительно по результату. Заметьте, я не говорил про 'echo %path%' - "вовсе не годится", я лишь сказал - "лучше по-другому".

    Цитата:
    я сомневаюсь, что Ваша запись способна передать значение переменной не из цикла

    Не понял? В моем примере наружу (за пределы включенного delayed expansion) передано значение переменной, которое невозможно в общем случае получить без delayed expansion, - переменной d присвоено значение переменной, чье имя (b) задано переменной a. И a, и b заданы вне цикла. Так при чем тут он?

    Цитата:
    Скорость, конечно, фактор важный, но вот читаемость кода - это то, что меньше всего волнует...

    Ну да, ну да. Особенно когда разбираешь его через год после написания. Правишь "ошибку" ("И как я мог такую глупость написать?.."), потом через некоторое время возвращаешь все обратно ("Ах вот оно, блин, что...").

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

    Предлагаю и вам привести пример исключения, для которого моя конструкция не годится.

    Цитата:
    необходимо передать значение в переменную по конвееру

    Свой пример приведите, пож.

    ----------
    Magically yours
    Raistlin

    Всего записей: 3960 | Зарегистр. 18-04-2005 | Отправлено: 14:50 11-09-2016
    YuS_two



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

    Цитата:
    У вас их таки куча выдается по 'set p'?  

    Ещё разок: у меня именно, таки нет спецсимволов с кавычками в path
     
    GCRaistlin

    Цитата:
    И a, и b заданы вне цикла. Так при чем тут он?

    А при том, что значение в глобальную переменную передаётся изнутри цикла и никак иначе. А то, что значение переменным задано вне цикла, в данном случае, не имеет никакого решающего значения. Сама передача происходит внутри цикла - нет?
     

    Цитата:
    моя конструкция не годится.

    Об этом я не говорил, так что примеров приводить не стану.
     

    Цитата:
    Свой пример приведите, пож.

    Пож.:

    Код:
    @echo off
    echo.123 >test.txt
    rem собственно передача:
    type test.txt|set /p x=^& cmd /v/c echo x=!x!>>"tmp" ^^^& set y=!x! ^^^&echo y=!y!>>"tmp"
    rem остальное - вспомогательный код для наглядности...
    <tmp findstr /rc:"."
    del tmp
    del test.txt
    pause

    Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 15:19 11-09-2016
    GCRaistlin



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

    Цитата:
    Ещё разок: у меня именно, таки нет спецсимволов с кавычками в path

    Цитируете одно, а отвечаете на другое.

    Цитата:
    Сама передача происходит внутри цикла - нет?

    Это накладывает какие-то ограничения? У вас передача происходит вообще в другой копии интерпретатора.

    Цитата:
    Об этом я не говорил, так что примеров приводить не стану.

    Ну, вы же сказали про "наименьшую подверженность исключениям". Способ с FOR им не подвержен в принципе - в отличие от вашего, кстати, по крайней мере в том виде, в котором вы его представили - замените

    Код:
    set x=111

    на

    Код:
    set x="&


    Цитата:
    Пож.

    Я имел в виду - поставьте задачу, а я попробую ее решить. Потому что у вас какой-то сферический конь в вакууме: присваиваем переменной значение из текстового файла, а затем присваиваем другой переменной значение первой переменной, при этом значения сохраняются только в пределах текущей строки. Раз другого ТЗ нет, то вот:

    Код:
     
    echo.123 >test.txt
    setlocal
    for /f "delims=" %%A in ('type test.txt') do (
      set x=%%A
      set y=%%A
    )
    echo x=%x%>>tmp
    echo y=%y%>>tmp
    endlocal
    <tmp findstr /rc:"."
    del tmp
    del test.txt
    pause
     

    Если уничтожение значений переменных - вынужденная, а не нужная фича, то код присвоения будет короче и тоже уместится в одну строку.

    ----------
    Magically yours
    Raistlin

    Всего записей: 3960 | Зарегистр. 18-04-2005 | Отправлено: 17:01 11-09-2016
    YuS_two



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

    Цитата:
    Цитируете одно, а отвечаете на другое.

    Отнюдь, это всё про то же:

    Цитата:
    Лучше  

    Код:
    set path


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

    и т.д.
     
     

    Цитата:
    Это накладывает какие-то ограничения?

    Нет, но и обязательств никаких. Т.е. никто не обязан писать код только с помощью циклов...  
    Всего лишь пример, что это можно сделать без цикла, а как это использовать - дело третье...

    Цитата:
    Ну, вы же сказали про "наименьшую подверженность исключениям".

    Это всего лишь объяснение собственных требований, которые никак не касались какого-либо, представленного здесь, кода...

    Цитата:
    У вас передача происходит вообще в другой копии интерпретатора.

    Отнюдь, передача, как раз, происходит в той же самой копии, а раскрываются переменные уже в другой копии... вот так, будет нагляднее:

    Код:
    setlocal enabledelayedexpansion
    set x=111
    endlocal&set y=%x%
    echo %y%

    По сути, там я приводил пример не как передавать переменную, а как можно использовать ключик /v в cmd. Вы не забыли о чем мы там говорили?
    Напоминаю:

    Цитата:
    Очень даже зря, это замечательный ключик, особенно когда требуется работать со спецсимволами... кстати, это сочетание позволяет значительно сокращать код и заменять кучу команд одной строкой.

    Не знаю, о чем подумали Вы, но я именно это иллюстрировал...
    И далее, была речь о том же самом...

    Цитата:
    Потому что у вас какой-то сферический конь в вакууме: присваиваем переменной значение из текстового файла, а затем присваиваем другой переменной значение первой переменной, при этом значения сохраняются только в пределах текущей строки.

    Да, именно, сферический конь... и его я описал тут:

    Цитата:
    допустим необходимо передать значение в переменную по конвееру

    Где в Вашем примере конвеер?

    Цитата:
    уничтожение значений переменных

    Не имеет значения...  
    А имеет значение только передача данных в переменную по конвееру и использование этих данных, так или иначе...

    Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 17:29 11-09-2016
    GCRaistlin



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

    Цитата:
    Отнюдь, это всё про то же

    В процитированном вами сообщении вопрос был - какого размера куча переменных у вас вылезает по 'set p'.

    Цитата:
    никто не обязан писать код только с помощью циклов... Всего лишь пример, что это можно сделать без цикла

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

    Цитата:
    По сути, там я приводил пример не как передавать переменную, а как можно использовать ключик /v в cmd.

    Использовать-то так можно, но его "замечательности" этот ваш пример ни разу не иллюстрирует.

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

    В соревнованиях по забиванию гвоздей микроскопом тоже имеет значение только инструмент.

    ----------
    Magically yours
    Raistlin

    Всего записей: 3960 | Зарегистр. 18-04-2005 | Отправлено: 18:06 11-09-2016
    YuS_two



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

    Цитата:
    какого размера куча переменных у вас вылезает по 'set p'.

    Если ответ был не совсем понятен: Там было продолжение мысли, что все ваши предположения о существовании в путях & в кавычках, имеют право на существование не более, чем предположение, что переменных начинающихся на p может быть и сто, и тысяча и более... а сколько их у меня - неважно. Если это важно для Вас, то скажите прежде, много ли у Вас путей с "&" в кавычках?
     

    Цитата:
    но его "замечательности" этот ваш пример

    Если вам это неинтересно, то зачем вступать в дискуссию?
     

    Цитата:
     

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

     
    В соревнованиях по забиванию гвоздей микроскопом тоже имеет значение только инструмент.

     
    Ну, т.е. по существу, показать Вам нечего? Понятно.  
    Уже пора переходить на личности?

    Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 18:47 11-09-2016
    GCRaistlin



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

    Цитата:
    много ли у Вас путей с "&" в кавычках?

    Ни одного.

    Цитата:
    Если вам это неинтересно, то зачем вступать в дискуссию?

    В какую дискуссию? Вы сказали, что ключик замечательный, и привели пример. Я - по умолчанию - предположил, что в примере демонстрируется какой-то уникальный или как минимум полезный прием, и, каюсь, не проверил, так ли это. Оказалось - нет.

    Цитата:
    Ну, т.е. по существу, показать Вам нечего?

    Мне не интересен прием ради приема. Возникает задача - я ищу решение, при наличии нескольких - выберу наиболее эффективное, удобное, читаемое. Впихивание кучи спецсимволов в одну строку и запуск новой копии интерпретатора - не признак ни того, ни другого, ни третьего. Соответственно, такое решение меня не интересует. Поэтому - да, мне показать нечего.

    ----------
    Magically yours
    Raistlin

    Всего записей: 3960 | Зарегистр. 18-04-2005 | Отправлено: 19:04 11-09-2016
    YuS_two



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

    Цитата:
    Ни одного.

    А у меня 13 переменных, начинающихся на "p", но это ведь не показатель того, что их не может быть больше, правда?
     

    Цитата:
    В какую дискуссию?  

    Да, действительно, получился разговор слепого с глухонемым. Вернее, битье головой апстену - только теперь непонятно, зачем я это делал... ну да ладно, это уже мои проблемы.
    В моих постах не было заявок на истину в последней инстанции и на какую-либо уникальность, всего лишь попытки показать, что ключ можно использовать, хоть и необязательно только его.  
    Увы, часто люди с приобретением какого-либо объема знаний, одновременно приобретают иллюзию всезнайства и присутствия на крыше мира, поэтому перестают считать дискуссией всё, что не укладывается в их собственные рамки (да как они вообще посмели возражать!)... соответственно, переубеждать их в чем-либо, чаще всего, бывает просто бессмысленно...
     

    Цитата:
    Впихивание кучи спецсимволов в одну строку и запуск новой копии интерпретатора - не признак ни того, ни другого, ни третьего. Соответственно, такое решение меня не интересует. Поэтому - да, мне показать нечего.

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

    Цитата:
    необходимо передать значение в переменную по конвееру - как бы Вы сделали это?

    В ответ - что угодно, но не его решение...

    Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 05:16 12-09-2016
    GCRaistlin



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

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

    Да нет, я просто перечитываю сейчас нашу дискуссию по поводу того, как лучше ознакомиться с содержимым PATH, и не могу понять, в каком месте я вступил в другую дискуссию - по поводу замечательности ключа /v. Я вообще-то всего лишь упомянул, что мне ни разу до сих пор им пользоваться не приходилось. Все остальное взяли на себя вы.

    Цитата:
    переубеждать их в чем-либо... бывает просто бессмысленно

    Отнюдь - в споре ведь выигрывает тот, кто его проигрывает: он увеличивает объем своих знаний. Но для переубеждения нужны рациональные аргументы.

    Цитата:
    роспись в собственном бессилии перед поставленной задачей

    Вы путаете понятие задачи и приема.
    Кстати, раз уж вы настаиваете, то передача значения в переменную по конвейеру не требует использования 'cmd /v/c':

    Код:
     
    @echo off
    set a=
    echo|(set /p a=&if^
     defined a echo b)
     

    А все ваши ухищрения с 'cmd /v/c' - для того, чтобы вытащить присвоенное значение. Ну, что тут сказать - каков инструмент, таковы и сложности. ССЗБ.

    ----------
    Magically yours
    Raistlin

    Всего записей: 3960 | Зарегистр. 18-04-2005 | Отправлено: 10:50 12-09-2016 | Исправлено: GCRaistlin, 10:58 12-09-2016
    YuS_two



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

    Цитата:
    в каком месте я вступил в другую дискуссию

    А в том самом:

    Цитата:
    Командой cmd-то да, а вот ключом /v к ней мне лично до сей поры ни разу не приходилось.

    Вообще, вы  сначала высказали утверждение (хоть и с вопросом), что в справку заглянуть мне пришлось. На что был ответ, что мне командой приходилось часто пользоваться. Ну и далее, уже после вашего вступления, мне на секунду показалось, что вам это интересно, вот и стал приводить примеры... но в дальнейшем, оказалось-то, что ваше чувство "крыши мира", совсем не позволяет вам вчитываться в то, что пишет кто-либо, кроме вас. Ну да ладно. Не интересно, значит не интересно.
     

    Цитата:
    Вы путаете понятие задачи и приема.

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

    Код:
    @echo off  
    set a=  
    echo|(set /p a=&if^  
     defined a echo b)

    ? Получено значение в переменную, а вывод почему-то непонятно чего - значение переменной покажите. Сам факт её наличия, действительно нафиг не сдался...
     

    Цитата:
    А все ваши ухищрения с 'cmd /v/c' - для того, чтобы вытащить присвоенное значение.

    Это не ухищрения, а способ использования значения полученной переменной. И сложностей никаких, всё вполне очевидно. А если кому-то это не "по глазам", то он и есть ссзб с зашоренным сознанием и собственным частоколом ограничений...

    Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 13:30 12-09-2016
    GCRaistlin



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

    Цитата:
    А в том самом

    И где в процитированном вы нашли вступление в дискуссию?

    Цитата:
    Смысл в том, чтобы получить переменную по конвееру и использовать её

    Изначально задача как звучала?

    Цитата:
    необходимо передать значение в переменную по конвееру

    А теперь оказывается, что надо еще и показать ее значение. То есть это как бы вами подразумевается. Ну так а мною подразумевается, что у любого стоящего приема должен быть смысл применимости. В вашем приеме смысл, однако, есть - если вы пишете универсальный скрипт, которые должен работать и в NT4. Но тогда в нем не должно быть использования Command Extensions вообще. В прочих случаях рационального оправдания использования этого громоздкого, ненаглядного, тормозного приема с ограничением времени жизни полученных переменных я лично не вижу.

    Цитата:
    Получено значение в переменную, а вывод почему-то непонятно чего

    Вывод 'b' означает, что переменная установлена, а ведь во второй строке мы ее стирали. И это не умозрительный прием - переменные-флаги как раз очень удобны, т. к. внутри одной строки их можно установить и затем обратиться к ним по 'if defined' без включения delayed expansion - быстро, лаконично, наглядно.

    Цитата:
    он и есть ссзб с зашоренным сознанием и собственным частоколом ограничений

    Давайте подойдем к вопросу с другой стороны. Какие у вас критерии качественности кода? Я предлагаю - в порядке убывания значимости - отказоустойчивость, скорость, наглядность, объем. Вы задаете задачу, которую решаете с помощью 'cmd /v/c'. Я предложу свое решение. Потом сравним по указанным критериям. По результатам определим, у кого зашоренность и частокол.

    ----------
    Magically yours
    Raistlin

    Всего записей: 3960 | Зарегистр. 18-04-2005 | Отправлено: 14:14 12-09-2016
       

    Страницы: 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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 12
    KLASS (06-03-2018 00:44): Объединение тем по сценариям: Сценарии Windows


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru