8

有没有办法在 Linux 环境中运行 .bat 文件?我有几个 .bat 文件,它们的目的是调用 mvn install:install-file 脚本。因此脚本中没有任何依赖于操作系统的内容。

谢谢,

4

7 回答 7

14

您可以使用wineor dosbox,但通常没有已知bat的 linux 解释器。但是,有各种用于 windows 的 unix shell 的实现,甚至还有一个标准工具包Windows Services for UNIX(aka SUA),其中包括ksh实现和许多其他好东西,所以如果你想要它对操作系统透明,你可以考虑使用它并编写你的脚本使用符合 POSIX 的 shell 脚本语言。

--- 编辑 --- 另一方面,如果你的脚本包含一个mvn <params>,你可以确保文件具有执行权限(x标志),在它前面加上一个 shell 解释器(比如/bin/bash script.bat),然后试试看它。但是,不能保证成功。

于 2012-10-01T21:03:10.077 回答
3

简单的答案是肯定的,有一种方法可以在 Linux 上运行它,只要:

  • 您从该.bat文件运行的命令$PATH位于您的 Linux 框中
  • 您没有使用 Microsoft 特定的 BATCH 文件命令或控制结构

您需要使文件可执行,并且很可能在文件的内容前面加上一行,告诉 Linux 使用哪个 shell 运行脚本。bash 是这样的:#!/bin/bash

于 2012-10-01T21:06:26.317 回答
3

在 Linux 终端类型上

wine cmd

之后,windows cmd 将在您的终端上播放。转到 .bat 文件所在的文件夹,输入 bat 文件名,然后按 Enter。它将成功运行。

于 2018-08-31T06:31:00.387 回答
0

安装dosbox

sudo apt install dosbox

运行它 dosbox

从您的 Linux 操作系统挂载您的主文件夹。在dosbox里面输入

MOUNT D /home/<your user>

切换文件夹驱动器

D:

现在,如果您my.bat在用户主目录中调用了一个文件,则在 doxbox 中运行它 MY.BAT

于 2018-03-28T08:21:19.883 回答
0

您可以使用 notepad++ 在 linux 中轻松运行任何批处理文件,您可以在任何 linux 应用商店中找到 notepad++。我已经从适用于 linux 的 snap 商店下载了它。Notepad++ 有一个名为 run 的选项,它将在任何环境中为您运行批处理文件

于 2021-05-19T04:45:35.400 回答
-1

不,这些bat文件是 windows shell 脚本,可能执行 windows 命令并期望在 windows 环境中运行。您需要将它们转换为 shell 脚本才能在 linux 上运行它们,因为您的 bash shell 无法理解 dos 命令。幸运的是,如果安装文件脚本真正独立于平台,那应该很容易。如果您提供示例,我们可能会帮助您翻译。

于 2012-10-01T21:03:42.407 回答
-2

您可以将与 .bat 脚本等效的内容编写为 shell 脚本。

于 2014-02-11T17:16:24.920 回答