How can I execute commands in git-bash in windows

2019-02-17 03:53发布

问题:

When I use git bash, from time to time I want to invoke a command wich is on my $PATH ( well actually on my %PATH% ) but if the command resides somewhere in a folder with spaces on it, it fails to run.

For instance if the program is on C:\Program Files\whatever\aCmd.exe and I type aCmd on bash, it says "Program" is not a valid program and such.

What I did was to re-install the program in a folder without spaces, but recently my coworkers are starting to leave git-gui and are using git-bash and the recurrent question is "How do I execute aCmd" and when I tell them to re-install it they go like ¬¬

Q. How can I execute commands in git-bash which are located in a folder with spaces?

回答1:

Just put the command to execute between double quotes, like so

"C:\Program Files\whatever\aCmd.exe"


回答2:

To reach the directory which has the spaces in it's path you just need to wrap the whole path with quotes. It should look like this:

cd "/c/Some Folder/Some Other Folder/"


回答3:

Where there are special characters in a file name (spaces, $, parenthesis...) you need to place a backslash ahead of the character so that it reads it as is.

For example, if you want to run the program notepad++.exe straight from Bash and need to direct the path to:

C:\Program Files (x86)\Notepad++\

Then you would code the path in your bash.rc file as follows:

export PATH=$PATH:/c/Program\ Files\ \(x86\)/Notepad++:<path2>:<path3>:...<pathn>:

Note the backslashes leading the spaces and parentheses.

You can even add an additional line on the next line of your bash.rc file:

alias npp=notepad++

which will create a shortcut, allowing you to type npp straight into Bash, instead of having to type out the full program name notepad++ every time.

I'm a total noob, just started coding 4 days ago, though I found for this problem the best website was the following: http://www.grymoire.com/unix/Quote.html

Hope this helps! :D



回答4:

Commands in git-bash accept paths within double quotes

"C:\Program Files\whatever\aCmd.exe"

or back slash for scaping the blank space

c/Program\ Files/whatever/aCmd.exe

Hope it helps!