Что причины состоят в том, чтобы использовать пакетные программы DOS в Windows?

Вопрос

Какова была бы польза (идеально, технический) причина для когда-нибудь программы некоторая нетривиальная задача на языке пакета DOS в современной системе Windows в противоположность загрузке или PowerShell или ActiveState Perl?

Чтобы быть точнее, я делаю следующие два предположения на время этого вопроса:

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

  • Ни один из тех двух не представляет действительно кривую обучения для основных пакетных заменяющих задач, которые сказали, что кривая перевесит боль выполнения любой remotely-non-trivial задачи в пакете.

Примечания

  • "Вам нужна пакетная программа для autoexec.bat", не допустимая причина. Ваш autoexec.bat может состоять из простого вызова несценария пакетной обработки.

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

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

Фон:

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

Идея для этого вопроса прибыла после наблюдения набора пакетных вопросов на Так, и попытка к grok ответ одного из них из чистого любопытства и отказа в боли после минуты, воскликнув мысленно, "почему кто-либо пройдет эту боль вместо того, чтобы делать это в 1 строке Perl?" :)

Мой собственный вероятный ответ

Я предполагаю, что может быть вероятной совместимой с DOS системой, которая имеет интерпретатор DOS, но не имеет никакого совместимого PowerShell или Perl... Я не знаю один, но не абсолютно невозможный.

8
задан DVK 3 April 2010 в 00:38
поделиться

5 ответов

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

Вы правы, когда говорите, что пакетный язык - ужасный язык - есть причина, по которой они потратили время и деньги на создание PowerShell - но это также единственный универсальный язык, на который вы можете положиться в бесчисленных версиях Windows.

13
ответ дан 5 December 2019 в 05:44
поделиться

Потому что я работаю в банке, где браузером по умолчанию является IE6 в Windows XP, и я понятия не имею, буду ли я иметь возможность установить PowerShell на чей-то компьютер, и у меня есть пакетный файл, который они могут использовать быстро и легко:

sqlcmd with some pre-import SQL
bcp
sqlcmd with some post-import SQL

При этом весь пакет должен быть ТОЛЬКО RUNAS / NETONLY, потому что рабочая станция не участвует в домене, в котором находится SQL Server. на / трасты.

Не то чтобы я жалуюсь или что-то в этом роде ...

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

9
ответ дан 5 December 2019 в 05:44
поделиться

Вы также можете использовать vbscript или jscript, а не perl, и вам не придется беспокоиться об установке какого-либо дополнительного программного обеспечения.

2
ответ дан 5 December 2019 в 05:44
поделиться

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

Утвержденная операционная система - Windows XP SP3 с IE6. Обновление не допускается, пока его не благословит техническая поддержка. Что, похоже, может произойти через несколько лет.

Таким образом, командные файлы - единственный доступный инструмент для создания сценариев. Некоторые машины для разработчиков имеют доступ к компиляторам C ++, но полученные программы не разрешены для внутреннего распространения до завершения (вероятно, многолетней) проверки.

5
ответ дан 5 December 2019 в 05:44
поделиться

по разным причинам

  1. Политика компании, будь то из соображений безопасности или по другим нелогичным причинам, указанным руководством, гласит, что вы строго используете DOS.
  2. Вы должны были поддерживать некоторые уже написанные устаревшие сценарии DOS.
  3. Вы или администраторы компании знаете только DOS и не имеете возможности изучать другие языки.
  4. Вы пишете код для части более крупной программы DOS, уже написанной
  5. Если вы делаете что-то «сложнее», вы круто выглядите.
  6. У вас много свободного времени , чтобы найти обходные пути для некоторых вещей, которые сложно легко решить с помощью DOS
0
ответ дан 5 December 2019 в 05:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: