какой скрипт (например, .bat) будет работать на Windows, Mac и Linux - PullRequest
3 голосов
/ 16 ноября 2011

У меня есть скрипт bat, который я хотел бы заставить работать на windows / Mac / linux, но я прочитал .bat только для windows. Как я могу заставить этот скрипт работать на Mac и Linux, или какой тип скрипта я могу написать, который будет работать на всех 3.

Ответы [ 7 ]

4 голосов
/ 16 ноября 2011

Нет такого зверя.Windows не поддерживает сценарии оболочки в стиле Unix, которые используют Mac / Linux, а Mac / Linux не имеет command.com/cmd.exe, необходимого для поддержки файлов .bat.

Есть способы подделать этокак запуск Wine в mac / linux и cygwin в Windows, но это совсем другой шарик воска.

3 голосов
/ 16 ноября 2011

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

Вам нужно будет установить его на Windows, и, возможно, на OS X.Но это совсем не сложно.

2 голосов
/ 16 ноября 2011
  1. Python
  2. Bash + MSYS в Windows
  3. Groovy / Beanshell / Javascript ... с соответствующим интерпретатором
2 голосов
/ 16 ноября 2011

Нет ни одного языка сценариев оболочки, доступного на всех трех, без установки чего-либо на одну из платформ.А в случае с Windows установка чего-то вроде Bash, доступного в Linux и OSX, менее чем полезна, поскольку она никогда не будет интегрироваться с Windows так же очевидно, как в OSX и Linux, и никогда не сможет сделать все какможет быть интегрирован в файл .bat или PowerShell.

Лично, когда мне нужно межплатформенный сценарий, я достигаю Python .

1 голос
/ 18 ноября 2011

.bat скрипты будут работать только на Windows.Я бы сохранил скрипт bat, который у вас есть для windows, и создал бы скрипт bash, предназначенный для работы на linux и osx.

Пожалуйста, не заставляйте меня устанавливать инструменты cygwin только для запуска скрипта.

0 голосов
/ 10 декабря 2015

Если вы знакомы с JavaScript, вы можете установить Node.js на каждой платформе, затем написать инструмент командной строки и запустить его так:

> npm install yourtool-cli -g
> yourtool [args]

Примечание: обычно добавляется суффикс -cli к имени пакета узла командной строки.Параметр -g предназначен для установки глобально, а не в локальной папке.

Модуль Файловая система позволяет выполнять множество задач, например, пакетных / скриптовых файлов.

0 голосов
/ 18 ноября 2011

вы можете написать пакетный файл и позволить ему интерпретировать из cmd на windows и sh на linux

, но общего синтаксиса немного, так что вы будете вынуждены запускать специфичные для os скрипты из этогопункт

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