Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 在Linux环境中运行.bat_Windows_Linux_Bash_Batch File_Sh - Fatal编程技术网

Windows 在Linux环境中运行.bat

Windows 在Linux环境中运行.bat,windows,linux,bash,batch-file,sh,Windows,Linux,Bash,Batch File,Sh,有没有办法在Linux环境中运行.bat文件? 我有几个.bat文件,它们的目的是调用mvn安装:安装文件脚本。因此,脚本中没有依赖于操作系统的内容 谢谢,您可以使用or,但一般来说,linux没有已知的bat解释器。然而,有各种针对windows的unix Shell实现,甚至还有一个标准工具包,windows Services for unix(又称“windows服务”),其中包括ksh实现和许多其他好东西,因此如果您想让它对操作系统透明,您可以考虑使用它,并在兼容POSIX的shell脚

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

谢谢,

您可以使用or,但一般来说,linux没有已知的
bat
解释器。然而,有各种针对windows的unix Shell实现,甚至还有一个标准工具包,
windows Services for unix
(又称“windows服务”),其中包括
ksh
实现和许多其他好东西,因此如果您想让它对操作系统透明,您可以考虑使用它,并在兼容POSIX的shell脚本语言中编写脚本。

---编辑---
另一方面,如果您的脚本只包含一个
mvn
,那么您只需确保该文件具有执行权限(
x
标志),使用shell解释器(如
/bin/bash script.bat
)将其前置,并尝试一下即可。但是,不能保证成功。

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

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

  • .bat
    文件运行的命令位于Linux设备上的
    $PATH
  • 您没有使用Microsoft特定的批处理文件命令或控制结构

您将需要使该文件可执行,并且很可能在文件内容前面加上一行代码,告诉Linux使用哪个shell来运行该脚本。类似于bash的内容:
#/bin/bash

您可以编写与.bat脚本等效的shell脚本。

安装dosbox

sudo-apt-install-dosbox

用它运行
dosbox

从Linux操作系统装载主文件夹。在dosbox内键入

MOUNT D/home/

切换文件夹驱动器

D:

现在,如果您的用户主目录中有一个名为
my.bat
的文件,那么在doxbox中只需运行它
MY.BAT

在Linux终端类型上

wine cmd

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

您可以使用记事本++在linux中轻松运行任何批处理文件,您可以在任何linux应用商店中找到记事本+。我从snap store下载了它,它是针对linux的。Notepad++有一个名为run的选项,它将在任何环境下为您运行批处理文件

谢谢您的回答。该脚本使用“set”、“rem”、“call”命令。在Unix环境中无法识别。令人遗憾的是,这样的解释器还没有被创建。这里最大的问题是Windows批处理文件可能使用CRLF作为行分隔符,而bash往往会以奇怪的方式阻塞它。用于将CRLF格式转换为CR格式。这里的一个大问题是Windows批处理文件可能使用CRLF作为行分隔符,而bash往往会以奇怪的方式阻塞它。用于将CRLF格式转换为CR格式。