【问题标题】:Execute commands from .bat file on Git Bash Terminal在 Git Bash 终端上从 .bat 文件执行命令
【发布时间】:2014-04-19 07:16:05
【问题描述】:

我是 Git bash 的新手。

只是出于好奇尝试制作一个包含命令的 .bat 文件(不知道 Git Bash 是否支持 .bat 文件)

我想要实现的只是将这个 .bat 文件拖放到 Git Bash 终端 并执行文件中的命令(有可能吗?)。

我在 .bat 文件中的命令

cd "C:\Users\USER\abc\xyz"
cd "C:\Users\USER\abc\xyz\pqr"
export HOME="C:\Users\USER\some_directory"
export HOME2="C:\Program Files\directoy"

【问题讨论】:

    标签: git git-bash


    【解决方案1】:

    我想要实现的只是将此 .bat 文件拖放到 Git Bash 终端并执行文件中的命令(可能吗?)。

    这是不可能的,而且可能永远不会,因为它不是自然的用户体验。将文件从文件资源管理器拖到 Git Bash 终端应该会在终端中生成文件的绝对路径。然后你可以按回车执行它。在文件资源管理器中执行文件的自然方法是双击它。 (文件资源管理器可能需要配置以允许在双击时执行.bat.sh 文件。)

    我在 .bat 文件中的命令

    cd "C:\Users\USER\abc\xyz"
    cd "C:\Users\USER\abc\xyz\pqr"
    export HOME="C:\Users\USER\some_directory"
    export HOME2="C:\Program Files\directoy"
    

    一方面,这个脚本看起来很虚假:cd /some/abs/path 后跟 cd /some/other/abs/path 是毫无意义的陈述。

    另外,.bat 扩展名应该用于 DOS shell 脚本,但export 命令在 DOS 中不存在(它存在于 Bash 中)。因此,您的示例应该是 .sh 脚本,而不是 .bat 脚本。

    最后,了解执行脚本和采购脚本之间的区别很重要:

    • 当您执行脚本时,例如使用path/to/script.sh,其中的命令将在子进程中执行。因此,更改执行环境的命令(例如更改目录或变量)将仅适用于子进程。也就是说,cdexport 命令的效果在脚本退出时将不可见。

    • 当您获取脚本时,例如使用source path/to/script.sh(或. path/to/script.sh),其中的命令将在当前进程中执行。因此,更改执行环境的命令,例如更改目录或变量,将应用于当前进程。

    换句话说,如果您希望 cdexport 命令在当前 shell 中生效,那么您希望获取脚本,而不是执行。

    【讨论】:

      【解决方案2】:

      您可以只从 git bash 运行批处理文件 例如

       ./clear.bat 
      

      来自Out of a git console: how do I execute a batch file and then return to git console?

      【讨论】:

      • 这也适用于从 Windows 10 bash 运行 .bat 文件 - 谢谢。
      猜你喜欢
      • 2015-01-29
      • 2016-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-09
      • 2014-12-15
      • 1970-01-01
      • 2016-04-05
      相关资源
      最近更新 更多