我正在尝试编写一个简单的脚本来进行git添加,提交和推送。
@echo off
SET operation=%1
SET opParam=%2
SET mainBranch=dev/1.1
if %operation%==fire (
for /f %%i in ('git rev-parse --abbrev-ref HEAD') do set branchName=%%i
if %opParam%.==. (
SET opParam="autogeneratedmessage"
@echo on
echo %opParam%
@echo off
) else (
SET opParam="%opParam%"
@echo on
echo %opParam%
@echo off
)
git add -A
git commit -m %opParam%
git push origin %branchName%
)
问题是当第二个参数为空时,它无法在第9行将opParam
的值设置为autogeneratedmessage
。
这是到目前为止我尝试设置opParam的内容:
SET opParam=""autogeneratedmessage""
SET opParam="autogeneratedmessage"
SET "opParam=autogeneratedmessage"
我真的看不到我在做什么错。看来这是一个简单的问题,但是我已经花了半个小时了。
答案 0 :(得分:0)
我已在该块中启用了延迟扩展,并使用!
而不是%
来引用我的变量。
if %operation%==fire (
setlocal enabledelayedexpansion
for /f %%i in ('git rev-parse --abbrev-ref HEAD') do set branchName=%%i
if %opParam%.==. (
SET opParam="autogenerated"
@echo on
echo !opParam!
@echo off
) else (
SET opParam="%opParam%"
@echo on
echo %opParam%
@echo off
)
git add -A
git commit -m !opParam!
git push origin %branchName%
)