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

如何将bashshell脚本转换为.bat文件?,bash,shell,scripting,batch-file,Bash,Shell,Scripting,Batch File,我的Mac电脑上有一个bash shell脚本,我需要将它转换成一个.bat文件(至少,这是我被告知的)供PC上的用户使用。我想知道最好的方法是什么,或者是否有人知道任何好的参考资料。我似乎没有问谷歌一个正确的问题来为我指明正确的方向 具体来说,像我如何做一个 cd ~/Documents/DropFolder (…其中~/等于用户主目录的根,与用户名无关) 或者,在处理变量和“do”语句时 for i in *.xml do java -Xss650K -Xms128m -Xmx2048

我的Mac电脑上有一个bash shell脚本,我需要将它转换成一个.bat文件(至少,这是我被告知的)供PC上的用户使用。我想知道最好的方法是什么,或者是否有人知道任何好的参考资料。我似乎没有问谷歌一个正确的问题来为我指明正确的方向

具体来说,像我如何做一个

cd ~/Documents/DropFolder
(…其中~/等于用户主目录的根,与用户名无关)

或者,在处理变量和“do”语句时

for i in *.xml
do
  java -Xss650K -Xms128m -Xmx2048m -jar /Applications...
done
最后,识别和使用基本名称

  cp -p `basename $i .xml`.xml ~/Documents/ReadyForServer/`basename $i .xml`/
感谢您对其他解决方案的指导或建议。
LO

windows shell与bash shell是不同的脚本语言。您需要将其移植到端口。或者,您可以使用cygwin或mingw之类的工具在windows上运行bash shell。

F1 windows上的帮助在编写DOS样式的批处理文件时非常有用。从windows桌面,点击F1并搜索批处理。使用批处理参数的链接对于使用DOS执行奇怪的操作非常有用。“使用批处理文件”页面也很好。正如其他海报所提到的,最好不要使用批处理作为实现语言,但如果必须这样做,就必须这样做。

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

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

  • ~用于用户的主文件夹

    用户的配置文件驻留在环境变量
    %USERPROFILE%
    中,因此应使用以下方法:

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

    for
    命令在这里很有用:

    for %%i in (*.xml) do -Xss650K -Xms128m -Xmx2048m -jar ... %%i
    
    显然,您需要调整JAR文件的路径

    除此之外,
    for
    还有更多的用途,因此也可以查看
    的帮助

  • basename

    您需要在子例程或
    for
    循环中执行此操作,因为以下语法特定于循环变量或参数。它不会像现在这样处理环境变量。如果循环变量或
    %n1
    如果
    %1
    是子例程或批处理文件的参数,则可以使用
    %%ni
    其中的
    %%i
    获得
    basename
    提供的内容。因此,下面可能也会这样做:

    copy "%%~ni.xml" "%USERPROFILE%\Documents\ReadyForServer\%%~ni\"
    
    关于
    帮助在接近尾声时提供了有关这些内容的更多信息


  • 您还可以使用Git for Windows,它已经内置了一个Bash shell(GitBash)

    第一句话其实很明显。第二个是——虽然可能有帮助——对于他们在这里想要的东西来说,这是一种过分的手段……我认为这个链接对你很有用。它包含shell脚本和bat文件的比较表。有转换工具吗?很好用。这对我来说是现成的:D!