什么脚本(如 .bat)可以在 Windows、Mac 和 Linux 上运行

问题描述 投票:0回答:8

我有一个bat脚本,我想在windows/Mac/linux上运行,但我读到.bat仅适用于windows。我怎样才能让这个脚本在 Mac 和 Linux 上工作,或者我可以编写什么类型的脚本来在所有 3 个平台上工作。

windows linux macos batch-file cmd
8个回答
5
投票

没有这样的野兽。 Windows 不支持 Mac/Linux 使用的 unix 风格 shell 脚本,并且 Mac/Linux 没有支持 .bat 文件所需的 command.com/cmd.exe。

有很多方法可以伪造这一点,比如在 mac/linux 上运行 Wine,在 Windows 上运行 cygwin,但那就完全是另外一回事了。


4
投票

如果您不想使用 C 等语言,我建议使用 Python 作为多平台脚本语言。它很容易学习,并且有很多通用的、多平台的库和函数。

您需要将其安装在 Windows 上,也许还需要安装在 OS X 上。但无论如何,这并不困难。


3
投票
  1. Python
  2. Windows 上的 Bash + MSYS
  3. Groovy / Beanshell / Javascript ...以及相应的解释器

2
投票

如果不在其中一个平台上安装某些东西,就没有一种 shell 脚本语言可以在所有这三个平台上使用。对于 Windows,安装像

Bash
这样在 Linux 和 OSX 上可用的东西不太有用,因为它永远不会像在 OSX 和 Linux 上那样无缝地与 Windows 集成,并且永远无法像集成为 .bat 或 PowerShell 文件即可。

就我个人而言,当我需要跨平台脚本时,我会选择Python


1
投票

.bat 脚本仅适用于 Windows。我会保留 Windows 上的 bat 脚本,并创建一个设计用于在 Linux 和 osx 上运行的 bash 脚本。

请不要让我安装 cygwin 工具只是为了运行脚本。


0
投票

您可以编写一个批处理文件,并让它从 Windows 上的 cmd 和 Linux 上的 sh 进行解释

但是没有太多共同的语法,因此您将被迫从那时起运行特定于操作系统的脚本


0
投票

如果您熟悉 JavaScript,您可以在每个平台上安装 Node.js,然后编写一个命令行工具并像这样运行:

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

注意通常将后缀

-cli
添加到命令行节点包名称中。
-g
选项是全局安装而不是本地文件夹中。

例如,文件系统模块可以让您执行许多批处理/脚本文件可以执行的操作。


0
投票

您可以在 Mac 上安装 Powershell。在这种情况下,您可以编写

ps1
文件并在 Windows 和 Mac 中执行它们

© www.soinside.com 2019 - 2024. All rights reserved.