Каковы причины использования пакетных программ DOS в Windows? - PullRequest
8 голосов
/ 03 апреля 2010

Вопрос

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

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

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

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

Примечания

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

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

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

Фон

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

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

Мой правдоподобный ответ

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

Ответы [ 5 ]

13 голосов
/ 03 апреля 2010

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

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

9 голосов
/ 03 апреля 2010

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

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

Поскольку весь пакет должен быть RUNAS / NETONLY, потому что рабочая станция не участвует в домене, на котором работает SQL Server / trusts.

Не то чтобы я жаловался или что-то еще ...

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

5 голосов
/ 03 апреля 2010

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

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

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

2 голосов
/ 03 апреля 2010

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

0 голосов
/ 03 апреля 2010

различные причины

  1. Политика компании, будь то по соображениям безопасности или по другим нелогичным причинам, указанным руководством. используйте DOS.
  2. Вы должны были поддерживать некоторые устаревшие DOS сценарии уже написаны.
  3. Вы или администраторы в компании только знаю DOS и не имеет возможности изучать другие языки.
  4. Вы кодируете часть большего Программа для DOS уже написана
  5. Делая вещи "сложнее", ты выглядишь круто.
  6. У тебя много времени на руках разработать обходные пути для некоторых вещи, которые трудно сделать легко с DOS
...