DOS批处理隐藏变量

BAT文件代码可执行:

echo 当前盘符:%~d0
echo 当前盘符和路径:%~dp0
echo 当前批处理全路径:%~f0
echo 当前盘符和路径的短文件名格式:%~sdp0
echo 当前CMD默认目录:%cd%
echo 当前bat文件文件名:%~n0

 其中“%cd%”可以直接在cmd窗口使用,非必须在bat文件中使用,其他几个是在bat文件中使用的

插一段git更新本目录下所有项目的脚本

@echo off

rem echo 当前盘符:%~d0
rem echo 当前盘符和路径:%~dp0
rem echo 当前批处理全路径:%~f0
rem echo 当前盘符和路径的短文件名格式:%~sdp0
rem echo 当前CMD默认目录:%cd%
rem echo 当前bat文件文件名:%~n0

rem 获取文件名
set spbase=%~n0

rem 替换文件名中的“[any]”为空
set "spbase=%spbase:[any]=*%"
rem 替换文件名中的“pull_”为空
set "spbase=%spbase:pull_=%"

set sp=%spbase%
echo=
echo=
echo 当前目录:
echo    %cd%
echo=
echo 准备开始拉取当前目录下“%sp%”目录的git项目(git pull),如需取消可直接关闭窗口
echo=
pause
cls

set a=0
for /d %%s in (%sp%*) do (
    set/a a=a+1
    echo=
    echo #########################################################################
    echo ################################  BEGIN  ################################
    echo     开始拉取: %%s
    echo #########################################################################
    cd %%s
    rem 测试回退:git reset --hard origin/master
    git pull
    echo -------------------------------------------------------------------------
    echo --------------------------------   END   --------------------------------
    echo -------------------------------------------------------------------------
    echo=
    cd ../
    rem 测试回退:pause
)

echo=
if 0==%a% (
    echo 未找到匹配“%sp%”的项目文件夹,未拉取任何项目
) else (
    echo 拉取任务执行完毕!!!本次拉取项目个数: %a%
)
echo=
pause

猜你喜欢

转载自blog.csdn.net/CalabashGourd/article/details/84800589