如何使用批处理文件在命令行中自动输入密码?

时间:2017-06-30 09:38:25

标签: git batch-file

我正在制作一个自动克隆我们的存储库的批处理文件,但它会在进行之前要求输入密码。我想要的是我只需要硬编码(或者如果有其他方式)我的密码。如果它提示/询问密码,它将自动输入我在我的代码中指定的密码...基于我的小研究(因为大多数都是相同的解决方案)......

我得到了这样的代码

@echo off

echo <password>| git clone <repository url> <output path>

pause

但它似乎没有做到这一点。

谁能帮助我吗?请???

1 个答案:

答案 0 :(得分:0)

您只需使用克隆网址(user:password

中的http://user:password@myserver.com/repo.git即可

或者您可以使用GIT_ASKPASS,因此在您的批处理文件中:

  • 创建另一个执行echo
  • 的批处理文件
  • 将环境变量GIT_ASKPASS设置为echo批处理文件的路径
  • call git
  • 删除回显批处理文件

在Windows批处理文件中,它可能是类似的东西(灵感来自jenkins-git-client):

@echo off

REM Create askpass batch
>askpass.bat  echo @set arg=%%~1
>>askpass.bat echo @if (%%arg:~0,8%%)==(Username) echo USERNAME
>>askpass.bat echo @if (%%arg:~0,8%%)==(Password) echo PASSWORD
set GIT_ASKPASS=%cd%\askpass.bat

REM Clone
git clone <repository url> <output path>

REM Remove askpass batch
del askpass.bat

不确定git是否会接受批处理文件作为ASKPASS,或者你是否必须使用shell脚本,但我希望你明白这一点。