在bash终端中使用Batch参数

时间:2017-03-22 19:44:14

标签: git bash batch-file git-bash

我正在尝试在批处理脚本中执行以下操作:

@echo off
SETLOCAL

set BASHPATH="C:\Program Files (x86)\Git\bin\"
set PATH=%BASHPATH%;%PATH%
set COMMIT=%1
echo COMMIT: %COMMIT%
%BASHPATH%\bash -l -c "echo COMMIT: $COMMIT \ && git checkout -f $COMMIT \ && git submodule update -f \ && git clean -fdx \ && git submodule foreach git clean -fdx \ && call $SCRIPT_PATH\name_all.sh \ && call $SCRIPT_PATH\name_all_log.sh \ && cd FCW \ && cd ObjectDetectionTest \ && exit; bash";
set CYGWINPATH="C:\cygwin64\bin"
set PATH=%CYGWINPATH%;%PATH%

ENDLOCAL

但是当我运行脚本时,$COMMIT会转换为空!那么,我做错了什么?

1 个答案:

答案 0 :(得分:0)

从蝙蝠脚本中,我设法做到了:

set COMMIT=%1
echo COMMIT: %COMMIT%
bash -l -c "COMMIT=%COMMIT% bash -l -c 'echo \${COMMIT}'"

含义:

  • 让bat脚本在bash命令中解析%COMMIT%
  • 在第一个COMMIT中设置bash -c后在bash中调用bash
  • 转义$