在unix中运行.bat脚本

时间:2017-10-25 07:26:38

标签: unix

我的Windows共享上有一个.bat脚本,它安装在我的UNIX机器上。 Bat脚本设置为在两个窗口共享之间进行文件传输,但是如果可能的话,我想从unix机器触发此脚本。我读到你可以用wine或dosbox来做,但我没有在我的unix上安装它。是否可以使用一些能够正确触发我的.bat脚本的附加.sh脚本来解决此问题?

提前谢谢你。 最好的祝福。

1 个答案:

答案 0 :(得分:0)

由于以下几个原因,您无法在Unix计算机上运行.bat script

  • Unix与Windows没有相同的命令(在命令行上)。 POSIX标准定义了一组命令,如果你使用它们,你将可以在各种POSIX系统上移植(但不能在Windows上);例如,要列出directory,您将在MSDOS和Windows上使用DIR,在Unix和POSIX上使用ls;复制文件在MSDOS和Windows上为COPY,在Unix和POSIX上为cp;等....

  • Unix与Windows不同command interpreter。 POSIX标准和Unix传统提供Unix shell,POSIX有standardized /bin/sh(a.k.a. POSIX shell)。 Windows有CMD(继承自MSDOS)和PowerShell

  • 解释命令的方式是不同的(在Windows上也看到PowerShell,我不知道)。在Unix上,正在扩展命令的{em> shell (不是被调用的程序)和globbing。有关详情,请参阅this answercurrent working directory的概念不同。

  • Windows和Unix或POSIX上的操作系统概念(略有或显着)不同。例如,filesdirectoriesprocesseslibraries是不同的(例如,文件可以由进程编写,并在Unix上由另一个文件删除,它可以在Linux上通过hard links),....等有几个名称....您可以阅读Operating Systems: Three Easy Pieces以获取概述。

  • Unix philosophy并非(始终)适用于Windows。

因此,您需要学习Unix (或POSIX)并从头开始编写您自己的shell script 不要 尝试将bat script“翻译”为Unix shell script ,但要完全重新设计(开始)来自您希望它解决的问题

WineDosBox对您的案例没有帮助)

另请阅读SCPFTP。也许使用像version control这样的分布式git系统可能与您相关(例如,共享脚本,源代码等......)。

如果您需要在远程 Windows计算机上(例如从Unix计算机)远程运行远程某些Windows .bat脚本,则应使用一些远程命令运行服务(即在Windows上查找并使用一些等效的SSH服务,并在Unix上使用相应的客户端)。请参阅this

因此,如果您需要在Windows服务器上远程运行来自Unix机器的某些东西(例如某些程序,某些脚本,某些命令),您应该提出一个不同的问题(或者至少可以改进当前的一个问题)

了解client-server modelapplication layer以使用正确的术语。您应该命名您想要涉及的协议,服务器,客户端和服务。没有使用它们,没有什么是神奇的“触发”。

PS。我从1987年开始使用Unix,自1993年开始使用Linux。我从未使用过Windows。

相关问题