51 votes

Comment écrire un fichier batch qui ouvre le shell GitBash et exécute une commande dans le shell ?

Je suis sous Windows 7 et j'essaie d'utiliser un fichier batch pour ouvrir le shell GitBash et passer un appel git. Voici le contenu de mon fichier batch :

 REM Open GitBash 
C:\Windows\SysWOW64\cmd.exe /c ""C:\Program Files (x86)\Git\bin\sh.exe" --login -i"
REM retrieve archive
git archive master | tar -x -C %~1
REM quit GitBash
exit

J'ai remarqué que GitBash se déconnecte avant la prochaine commande "git archive...". Est-ce que quelqu'un sait si je peux passer la commande dans GitBash et comment ?

Mike

66voto

Erik Points 38942
"C:\Program Files (x86)\Git\bin\sh.exe" --login -i -c "git archive master | tar -x -C $0" "%~1"

14voto

rugg Points 61

Vous pouvez également exécuter un script shell pour exécuter plusieurs commandes

 #! /bin/bash
cd /c/GitRepo/PythonScripts
git status
read -p "Press enter to continue"

puis appelez cela depuis votre ligne de commande :

 "c:\Program Files (x86)\Git\bin\sh.exe" --login -i -c "/c/GitRepo/PythonScripts/statusandwait.sh"

7voto

inf3rno Points 2989

Dans Windows, j'ai créé un fichier git.bat et je l'ai associé à l'extension .hook.

 if not exist %1 exit
set bash=C:\Program Files (x86)\Git\bin\bash.exe
"%bash%" --login -i -c "exec "%1""

Après cela, vous pouvez exécuter les fichiers .hook comme tous les fichiers .bat ou .cmd, sauf qu'ils s'exécutent sous git shell ...

1voto

fitorec Points 54

Utiliser Bash est plus convivial, par exemple

 # file: backup.sh

cd /c/myProyectPath/
PWD=$(pwd);

function welcome() {
   echo "current Dir   : $PWD";
}

function backup() {
   git pull

   #if you have install wamp <http://www.wampserver.com>, we making slqBackup
   MYSQLDUMP="/c/wamp/bin/mysql/mysql5.6.12/bin/mysqldump.exe";
   $MYSQLDUMP --user=login --password=pass --no-create-info bd > data/backup.sql
   git add data/backup.sql;

   #generating tar file
   git archive -o latest.tar HEAD
}

welcome;
backup;

echo "see you";
sleep 30;

Vous pouvez exécuter le script :

 "C:\Program Files (x86)\Git\bin\sh.exe" --login -i -c "/c/myProyectPath/run.sh"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X