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

标签 bash shell scripting batch-file

<分区>

我的 Mac 上有一个 bash shell 脚本,我需要将其转换为 .bat 文件(至少有人告诉我)以供 PC 用户使用。我想知道解决这个问题的最佳方法,或者是否有人知道任何好的引用资料。我似乎没有向 Google 提出正确的问题来为我指明正确的方向。

具体来说,比如我将如何做...

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`/

感谢您提供任何指导或对其他解决方案的建议。 罗

最佳答案

实际上,您提到的内容对于移植到 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 循环中执行此操作,因为以下语法特定于循环变量或参数。它不会按原样使用环境变量。您可以通过使用 %%~ni 获得 basename 给您的内容,其中 %%i 如果是循环变量或 %~n1 如果 %1 是您拥有的子例程或批处理文件的参数。所以以下可能会做同样的事情:

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

    for 的帮助在接近尾声时提供了有关这些内容的更多信息。

关于bash - 如何将 bash shell 脚本转换为 .bat 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3200018/

相关文章:

linux - KSH 脚本返回 249 作为退出代码

javascript - 使用 AJAX 和跨站点脚本读取 header

.net - 如何从 “client” PowerShell脚本获取回显工作?

linux - Bash 脚本 : "Dump" directory using mv - current directory

bash - 输出并行--pipe到文件

linux - || 是什么意思在 Bash 脚本中测试条件后

linux - Ubuntu 中“which”命令不输出任何内容

shell - 如何在oozie工作流程中设置路径?

bash - 修改Xcode的project.pbxproj中的PRODUCT_BUNDLE_IDENTIFIER

java - 隐藏 ImageJ 界面元素