如何将bash shell脚本转换为.bat文件?

时间:2010-07-08 01:04:22

标签: bash shell scripting batch-file

我的Mac上有一个bash shell脚本,我需要为PC上的用户转换为.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

6 个答案:

答案 0 :(得分:13)

实际上,您提到的内容对于移植到Windows批处理文件来说是微不足道的。虽然你肯定可以使用所有Unix工具的Windows端口(甚至使用仿真层来获得更多乐趣),但这并不难:

  1. 〜用于用户的主文件夹

    用户的个人资料位于环境变量%USERPROFILE%中,因此以下内容应该这样做:

    cd %USERPROFILE%\Documents\DropFolder
    
  2. 迭代一组文件

    for命令在这里很有用:

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

    显然,您需要调整JAR文件的路径。

    for除此之外还有更多用途,因此请查看help for

  3. <强>基名

    您需要在子例程或for循环中执行此操作,因为以下语法特定于循环变量或参数。它不能用于环境变量。如果循环变量为basename,或%%~ni %%i是子例程或批处理文件的参数,则可以使用%~n1 %1来获取copy "%%~ni.xml" "%USERPROFILE%\Documents\ReadyForServer\%%~ni\" 给你的内容你有。所以以下内容可能会这样做:

    for

    {{1}}上的帮助提供了有关这些内容的更多信息。

答案 1 :(得分:4)

Windows shell是一种与bash shell不同的脚本语言。你需要移植它。或者,您可以使用cygwin或mingw之类的东西在Windows上运行bash shell。

答案 2 :(得分:3)

你也可以使用Git for Windows,它已经内置了Bash shell(GitBash)

答案 3 :(得分:1)

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

答案 4 :(得分:1)

你应该手动转换。学习批处理命令,然后执行等效命令。或者,您可以使用GNU win32 unix工具。

答案 5 :(得分:0)

看一下powershell。这个网站有很多例子:

http://technet.microsoft.com/en-us/scriptcenter/powershell.aspx