2010-07-08 1187 views
11

我在我的Mac上有一个bash shell脚本,我需要将其转换为.bat文件(至少,这是我所了解的)用于PC上的用户。我想知道这个最好的方法,或者如果有人知道任何好的参考。我似乎并没有要求Google提出正确的问题来指引我走向正确的方向。如何将bash shell脚本转换为.bat文件?

具体来说,像我将如何做?

cd ~/Documents/DropFolder 

(...的地方〜/等于用户的主目录的根目录,无论用户的名字)?

或者,工作变量时,和 “做” 的语句...

for i in *.xml 
do 
    java -Xss650K -Xms128m -Xmx2048m -jar /Applications... 
done 

最后,鉴定和使用基本名称...

cp -p `basename $i .xml`.xml ~/Documents/ReadyForServer/`basename $i .xml`/ 

感谢您的任何指导或建议其他方案。 LO

+0

我觉得这个环节是对你有用。它包含shell脚本和bat文件的比较表。 http://tldp.org/LDP/abs/html/dosbatch.html – SANN3 2012-09-11 11:41:50

回答

10

实际上,你提到的东西对于移植到Windows批处理文件是微不足道的。虽然你肯定可以使用Windows端口的所有Unix工具(或者甚至可以使用一个仿真层更有趣),这是不难做到:

  1. 〜用户的主文件夹

    用户的配置文件驻留在环境变量%USERPROFILE%,所以下面应该这样做:

    cd %USERPROFILE%\Documents\DropFolder 
    
  2. 它erating在一组文件

    for命令是很有帮助的位置:

    for %%i in (*.xml) do -Xss650K -Xms128m -Xmx2048m -jar ... %%i 
    

    显然,你需要适应的路径,JAR文件,但。

    for有更多的用途,所以看看help for以及。

  3. 基名

    你需要做到这一点无论在子程序或for循环,如下面的语法特定循环变量或参数。它不会像环境变量那样工作。你可以通过使用%%~ni得到basename给你的东西,其中%%i如果循环变量或%~n1如果%1是你有的子程序或批处理文件的参数。因此,下面可能会做同样的:

    copy "%%~ni.xml" "%USERPROFILE%\Documents\ReadyForServer\%%~ni\" 
    

    上的帮助for拥有接近尾声那些事情的详细信息。

+2

是否有任何转换工具? – Razavi 2015-08-08 07:53:21

3

Windows外壳比bash shell的不同的脚本语言。你将需要移植它。或者,你可以使用类似cygwin或mingw的东西在Windows上运行bash shell。

+2

第一句话其实很明显。第二个是 - 虽然可能有帮助 - 在这里他们想要的方式矫枉过正... – Joey 2010-07-08 05:20:18

0

在编写DOS样式的批处理文件时,F1的窗口帮助非常有用。在Windows桌面上,点击F1并搜索批处理。使用批处理参数的链接对于使用DOS进行奇怪的技巧非常有用。 '使用批处理文件'页面也很好。正如其他海报所说,你最好避免批量作为你的实现语言,但如果你必须的话,你必须。

0

你应该手工转换。学习批处理命令,然后执行相同的操作。或者,您可以使用GNU win32 unix工具。

2

你也可以使用git的Windows,它已经内置在Bash shell(GitBash)