Board logo

标题: [其他] 【已解决】批处理从配置文件中读的信息,作为svn参数,svn不接受。 [打印本页]

作者: q317248181    时间: 2020-7-16 09:52     标题: 【已解决】批处理从配置文件中读的信息,作为svn参数,svn不接受。

bat 脚本为什么用读取配置文件方式传递参数无法直接连接SVN。参数写死就行?
  1. :configinfo
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('type "D:\b2ccode\config.ini"^| find /i "="') do set %%i
  4. endlocal & SET USER=%USER% & SET PWD=%PWD%
  5. goto:eof
  6. call:configinfo
  7. call svn checkout %tag_path%  %PRDNM% --username %USER% --password %PWD%
复制代码
config.ini 里面就是SVN的账号密码
USER=user
PWD=123456
作者: Batcher    时间: 2020-7-16 10:24

回复 1# q317248181


    请提供 config.ini 文件内容,以便测试代码。
作者: q317248181    时间: 2020-7-16 10:28

回复 2# Batcher


    config.ini 里面就是SVN的账号密码
USER=user
PWD=123456
作者: Batcher    时间: 2020-7-16 11:40

回复 3# q317248181


call放在上面,子函数的定义放在下面试试:
  1. call :configinfo
  2. echo svn checkout %tag_path% %PRDNM% --username %USER% --password %PWD%
  3. goto :eof
  4. :configinfo
  5. for /f "delims=" %%i in ('type "D:\b2ccode\config.ini"^| find /i "="') do set %%i
  6. goto :eof
复制代码

作者: q317248181    时间: 2020-7-16 12:08

回复 4# Batcher
  1. call:configinfo
  2. rem SVN地址
  3. set tag_path=https://www.svn.com/***
  4. rem 本地仓库
  5. SET PRDNM=Comix_1
  6. rem 用户名
  7. set u=%USER: =%
  8. rem 密码
  9. set p=%PWD: =%
  10. echo %u%
  11. echo %p%
  12. pause
  13. D:
  14. mkdir  %u%
  15. cd  D:\%u%\
  16. call svn checkout %tag_path%  %PRDNM% --username %u% --password %p%
  17. pause
  18. :configinfo
  19. setlocal enabledelayedexpansion
  20. for /f "delims=" %%i in ('type "D:\b2ccode\config.ini"^| find /i "="') do set %%i
  21. endlocal & SET USER=%USER% & SET PWD=%PWD%
  22. goto:eof
复制代码
还是不行,还是提示需要手动输入密码。
作者: Batcher    时间: 2020-7-16 12:37

回复 5# q317248181
  1. call :configinfo
  2. rem SVN地址
  3. set "tag_path=https://www.svn.com/***"
  4. rem 本地仓库
  5. SET "PRDNM=Comix_1"
  6. rem 用户名
  7. set "u=%USER: =%"
  8. rem 密码
  9. set "p=%PWD: =%"
  10. echo %u%
  11. echo %p%
  12. pause
  13. md D:\%u%
  14. cd /d D:\%u%\
  15. call svn checkout %tag_path% %PRDNM% --username %u% --password %p%
  16. pause
  17. goto:eof
  18. :configinfo
  19. for /f "delims=" %%i in ('type "D:\b2ccode\config.ini"^| find "="') do set %%i
  20. goto:eof
复制代码

作者: q317248181    时间: 2020-7-16 13:47

回复 6# Batcher


谢谢,明明是从配置文件读出了密码,放进参数里,但是还是需要手动输入。
不读取配置文件直接把账号密码赋值,这样就没问题。很奇怪,,
作者: Batcher    时间: 2020-7-16 14:27

回复 7# q317248181


    猜测是有特殊字符导致代码获取的用户名或密码不对,请把你的ini文件和bat文件打包压缩传上来我试试。
作者: q317248181    时间: 2020-7-16 14:45

回复 8# Batcher


    谢谢!!已经可以了,确实是特殊字符的原因。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2