Out of a git console: how do I execute a batch fil

2019-01-10 13:54发布

I have a small utility script called clear.bat that does some housekeeping work on my sources.

It is a .bat file so that I could easily double-click it in Windows Explorer.

Sometimes, I find it more handy to execute it from my Git bash (msysgit, if this matters).

To do this, I type

cmd
clear.bat
exit

cmd turns my Git bash into a normal cmd window where I could easily execute my batch. When I type exit, the cmd environment is terminated and I'm back in my Git bash.

Could this be achieved in an easier way?

I tried cmd /C clean.bat since the docs say

Syntax
      CMD [charset] [options]

      CMD [charset] [options] [/c Command] 

      CMD [charset] [options] [/k Command] 

Options   
   /C     Run Command and then terminate

   /K     Run Command and then return to the CMD prompt.
          This is useful for testing, to examine variables

Edit:
Just noticed that the post is broken.

What I want is to execute clean.bat from within the Git bash without having to type the three commands above (cmd, clear.bat, exit). I just want to execute the .bat file from within my Git bash. Obvious way would be to create a separate .sh file that does the same work but this will lead to double code.


Edit 2: When I execute cmd /C clean.bat, the Git bash turns into a plain CMD environment and only displays the prompt. The file clean.bat does not get executed. It's the same as if I just type cmd.

Also, adding a /debug switch does literally nothing. Seems like only cmd gets evaluated and all further parameters are getting ignored.

4条回答
劳资没心,怎么记你
2楼-- · 2019-01-10 14:30

The Git for Windows (msysGit has been superseded by Git for Windows1) FAQ says you have 3 options:

  • Run programs that have problems using the winpty utility. This allows you to keep using the nicer mintty terminal, but can become unwieldy if you need the workaround for many programs.

  • Modify the shortcut for Git Bash to run bash directly without mintty so it uses the default console host and configure it for "Quick Edit", reasonable size and scroll-back and suitable unicode font. You'll still have to live with the other quirks of console host.

  • Install and use ConEmu.

查看更多
放荡不羁爱自由
3楼-- · 2019-01-10 14:36

./clear.bat will do the trick.

查看更多
迷人小祖宗
4楼-- · 2019-01-10 14:36

I like start clean, it opens a new window with cmd. This method has some benefits:

  • cmd.exe gets a native console
  • the new console has a native windows character encoding (e.g. cp1251 vs utf8)
查看更多
ら.Afraid
5楼-- · 2019-01-10 14:45

After playing around a bit more, I found the solution myself:

cmd "/C clean.bat"

does the trick. But I got no clue, why...

查看更多
登录 后发表回答