Исходя из Bash, какой язык сценариев Windows выучить? - PullRequest
7 голосов
/ 23 июня 2009

Для работы я перехожу на Windows после долгого времени на Linux. Я хочу получить некоторые навыки сценариев для административных задач в Windows. Я неплохо разбираюсь в bash, но в библиотеках / инструментах bash многое отсутствует, когда дело касается окон. Я вижу vbscript, wsh, powershell, cmd, jscript и т. Д., И мне интересно, что изучать, или какую комбинацию вещей. Я также изучаю .net, поэтому было бы неплохо, если бы это помогло, но это не является обязательным требованием.

Ответы [ 7 ]

12 голосов
/ 23 июня 2009

Если вы изучаете .NET, Powershell - единственный выбор. VBScript существует намного дольше, и поэтому, вероятно, есть больше примеров и примеров для VBScript. Но именно в Powershell Microsoft сосредоточена на разработке сценариев на будущее. Он включен в WS2008 (R2), будет в Win 7 и может быть добавлен в Vista, WS2003 или WS2008. Powershell является стратегическим. Я нахожу его намного более мощным, чем VBScript.

Сообщество вокруг Powershell также расширяется. Только один пример: если вы зайдете на powershell.com, вы можете подписаться на «совет дня powershell», отправленный по электронной почте.

Что касается пересечения .NET - Powershell может загружать сборки .NET и вызывать их, поэтому эти две вещи будут очень взаимодополняющими.

6 голосов
/ 23 июня 2009

Powershell, нет сомнений, собираетесь ли вы администрировать среду 2008 или более позднюю. Я часто посещаю конференции Microsoft, и они помещают все свои чипы в Powershell.

5 голосов
/ 23 июня 2009

Я подкреплю рекомендации PowerShell. Разработчики в команде PowerShell были старыми руками Unix, и в PowerShell есть ряд Unix-подобных функций.

Что-то вроде Cygwin позволило бы вам использовать bash напрямую, но я бы не рекомендовал это по нескольким причинам. Во-первых, если вы работаете в среде Windows, PowerShell будет проще для кого-либо без поддержки bash. Во-вторых, администрирование Windows будет проще в среде, где вы можете легко получить доступ к методам объектов WMI и т. Д.

PowerShell обладает многими преимуществами традиционной оболочки Unix, но PowerShell имеет одно огромное преимущество: вы можете вызывать методы для объектов, а не анализировать текст, когда вы передаете команды вместе. Каждая команда возвращает объект. См. Сравнение конвейеров Unix и PowerShell .

4 голосов
/ 23 июня 2009

Cygwin может сохранить ваши навыки написания сценариев Unix актуальными в среде Windows. В настоящее время Powershell является официальным языком сценариев .Net. Однако не стоит сбрасывать со счетов другие варианты. Существует Ironpython , IronRuby и другие. Многие языки сценариев Java, такие как Groovy , могут быть запущены в .Net через IKVM

2 голосов
/ 23 июля 2009

Я сам переключился на Linux на несколько лет, но недавно я выполнил несколько проектов в Windows с использованием Perl, и я не могу рекомендовать его достаточно. Если вы на самом деле собираетесь писать сценарии, а не отдельные команды, это определенно стоит рассмотреть. Проверьте Клубничный Perl. Возможно, вы даже сможете найти приличную оболочку Perl, которая работает под клубничным Perl, и в этом случае вы также можете использовать ее для однократных команд. Проверить http://perldoc.perl.org/perlfaq3.html#Is-there-a-Perl-shell?

И не думайте, что Perl не годится для сценариев Windows. В моих недавних проектах я писал сценарии как для Outlook, так и для Excel в Perl, используя Win32 :: OLE, и это работало как чудо!

1 голос
/ 23 июня 2009

VBScript, batch и Powershell - самые большие из тех, о которых я могу подумать. Кроме того, узнайте, как работает WMI и как его можно вызвать из VBScript / Powershell.

0 голосов
/ 23 июня 2009

Я много использовал PowerShell, это очень простой и мощный язык сценариев, но он не поддерживает Windows 2000! И это заставляет меня устанавливать PowerShell Runtime на каждом компьютере в локальной сети. Что касается IronRuby, я рекомендую BOO - хороший и мощный язык.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...