批处理命令中的所有shell脚本命令是否可移植?

时间:2010-09-13 00:19:30

标签: shell batch-file portability

我不是linux用户(是的,我很抱歉!)我的一个朋友让我把他的shell脚本移植到windows批处理中,因为他想在那里做同样的任务。 / p>

我之前没有使用过shell-scrips,我的批处理技能几乎不存在,但我想尝试一下。

所以我想问一下批处理中是否存在所有shell功能。

提前感谢,

安德烈亚斯

4 个答案:

答案 0 :(得分:0)

批处理命令是.BAT,由Windows CMD进程执行。

Linux shell脚本是一个世界和品种,除了BATCH之外......取决于Linux脚本#!/bin/xxxxx的开头,其中xxxxx可能是bash,csh,korn,zsh,ash ....

你可能最好在Windows下查看PowerShell(Monad)来实现类似的功能。这里是PowerShell的另一个链接。看看PowerShell Scripting Guy网站。

使用Powershell来制作Linux shell脚本的等价物 - 您可以将其删除...另一个概念和概念是使用基本类似的AutoIt脚本功能....

唯一要记住的是,很多shell脚本功能可能会引用Windows上没有的其他linux命令......根据脚本的复杂性,可能会有替换linux命令(如果任何)到Windows命令。

将脚本全部发布可能会有所帮助......

答案 1 :(得分:0)

批处理和shell(bash等)脚本不一样。唯一的最佳方法是学习批处理/ vbscript和shell,然后手动转换它们。或者,您可以安装cygwinGNU win32。这些将帮助您在Windows上运行shell脚本,但您可能需要进行一些更改,具体取决于编写的内容。

答案 2 :(得分:0)

简而言之,没有。虽然从概念上编写shell脚本和批处理文件类似,但语法和命令却完全不同。例如,bash cat中的常见命令是Windows中的type等。但是,一般情况下,DOS命令在Linux中应该具有等价物。

您的脚本无法在Linux中运行。如果你的朋友使用bash(很有可能),你可以查看一些教程和文档,将他的脚本“翻译”成一个Windows,就像将一个用C编写的代码翻译成Python一样。一种完全不同的语言,具有不同的语法,但有许多共同的特征。

Here's一个很棒的教程,我曾经学过sh,这是写入bash shell脚本的语言。它有点快节奏,但是如果你可以批量编写脚本,大部分都应该对你有用

如果您想了解bash中的命令,可以找到文档和参考手册here.

如果您需要脚本中的某些内容的特定帮助,请发布它,我相信有人会告诉您需要做什么。

答案 3 :(得分:0)

实际问题的答案是否定的,并非所有shell脚本命令都适用于Windows的批处理文件。

但是,这并不是说脚本无法移植到Windows。有许多语言可用于获得所需的结果。第一步是定义所需的输出,以及正在执行的操作类型,然后您可以找出最适合该任务的语言。

如果您想继续维护该程序的两个版本,那么您可以使用C,C ++,AutoIt,C#,VB.Net等来编写仅限Windows的版本。

或者您可以将已经在Linux中编写的现有shell脚本移植到Ruby,Python或Perl等语言中 - 然后它更有可能在Linux和Windows上运行,只需更少的更改。