Board logo

标题: [文本处理] 隐藏输入密码的批处理为何提示密码错误? [打印本页]

作者: 7016427    时间: 2015-9-4 21:01     标题: 隐藏输入密码的批处理为何提示密码错误?

请教各位老师,以下代码执行时,我密码输入正确,仍无法执行,还是提示:对不起,您密码输入错误!
  1. @echo off&setlocal EnableDelayedExpansion
  2. echo.
  3. set "spath=e:\外勤"
  4. set "bakpath=d:\备份\外勤"
  5. set /a "y=%date:~,4%,m=1%date:~5,2%-2"
  6. if %m% lss 101 set /a y-=1,m+=12
  7. if exist "%spath%\%y%\%m:~-2%\" (
  8. chcp 437>nul&graftabl 936>nul
  9. echo hP1X500P[PZBBBfh#b##fXf-V@`$fPf]f3/f1/5++u5x>in.com
  10. echo.
  11. set /p pw=请输入密码: <nul
  12. for /f "tokens=*" %%i in ('in.com') do set pw=%%i
  13. del in.com
  14. if not "%pw%"=="jyzr" (
  15.     echo.
  16.     echo.
  17.     echo 对不起,您密码输入错误^^!
  18.     pause>nul&exit
  19. )
  20. rd /q /s %bakpath%&md %bakpath%
  21. xcopy /e /y "%spath%\%y%\%m:~-2%\*.*" "%bakpath%\%y%\%m:~-2%\"
  22. rd /q /s "%spath%\%y%\%m:~-2%\"
  23. echo.
  24. echo %y%年%m:~-2%月份,备份完毕!
  25.   )
  26. ) else (
  27. echo %y%年%m:~-2%月已备份!
  28. echo.
  29. pause
复制代码

作者: DAIC    时间: 2015-9-4 21:21

del in.com
echo 你输入的密码是"%pw%"
if not "%pw%"=="jyzr" (

这样可以看到你输入的密码是不是真的错了
作者: 7016427    时间: 2015-9-4 21:26     标题: 【未解决】 隐藏输入密码的批处理为何提示密码错误?

[未解决]回复 2# DAIC

你好!我是输入正确的密码,就是执行错误!
作者: DAIC    时间: 2015-9-4 21:46

回复 3# 7016427


    用2楼的方法,截图看看。
作者: 7016427    时间: 2015-9-4 21:52

回复 2# DAIC
请问老师,什么意思?
作者: 回家路上    时间: 2015-9-4 22:08

本帖最后由 回家路上 于 2015-9-4 22:11 编辑

回复 5# 7016427


我在那个贴就是想问你,你知道
  1. chcp 437>nul&graftabl 936>nul
  2. echo hP1X500P[PZBBBfh#b##fXf-V@`$fPf]f3/f1/5++u5x>in.com
复制代码
  1. set /p pw=请输入密码: <nul
复制代码
这什么意思吗?目的是干什么的自己清楚不
还有代码的括号都 不配对。最后一个else是什么意思。你都不检查??(⊙﹏⊙)b

DAIC的意思就是---比较前,你把pw输出出来直接用眼看,更你那字符串相等不,就知道问啥总是不相等。。。。
作者: 7016427    时间: 2015-9-4 22:23

回复 6# 回家路上
请问老师怎么修改?
作者: 回家路上    时间: 2015-9-4 22:34

回复 7# 7016427


对不起老师,我不会。
作者: 7016427    时间: 2015-9-4 22:36

回复 8# 回家路上
谢谢!
作者: CrLf    时间: 2015-9-5 05:09

虽然楼主的问题看起来很简单的样子,但还是按2楼说的测试一下为好
明白错误出在哪里,我们再告诉你要怎么解决,不然楼主以后会一直碰到类似的问题
作者: DAIC    时间: 2015-9-5 12:43

回复 5# 7016427


1、复制顶楼的代码,保存为test.bat
2、在test.bat的第13行下面加一行 echo 你输入的密码是"%pw%"
3、执行test.bat
4、按照提示输入密码,截图,把图片传上来我看看

这样说能理解吗?
作者: 7016427    时间: 2015-9-5 13:08     标题: [未解决] 隐藏输入密码的批处理为何提示密码错误?

[未解决]回复 11# DAIC
作者: 7016427    时间: 2015-9-5 13:13     标题: [未解决] 隐藏输入密码的批处理为何提示密码错误?

[未解决]回复 11# DAIC
作者: 7016427    时间: 2015-9-5 13:17     标题: [未解决] 隐藏输入密码的批处理为何提示密码错误?

[未解决]回复 11# DAIC
你好!因提示图片无法上传。显示结果是:请你输入密码:你输入密码是""    对不起,您密码输入错误!
作者: 7016427    时间: 2015-9-5 20:50     标题: 【已解决】 隐藏输入密码的批处理为何提示密码错误?

[已解决]回复 14# 7016427
@echo off
echo.
set "spath=e:\外勤"
set "bakpath=d:\备份\外勤"
set /a "y=%date:~,4%,m=1%date:~5,2%-2"
if %m% lss 101 set /a y-=1,m+=12
if not exist "%spath%\%y%\%m:~-2%\" (echo %y%年%m:~-2%月,已备份!
echo.
pause>nul&exit
)
@echo off&setlocal EnableDelayedExpansion
chcp 437>nul&graftabl 936>nul
echo hP1X500P[PZBBBfh#b##fXf-V@`$fPf]f3/f1/5++u5x>in.com
echo.
set /p pw=请输入密码: <nul
for /f "tokens=*" %%i in ('in.com') do set pw=%%i
del in.com
if not "%pw%"=="jyzr" (
echo 密码错误 ^^!
pause>nul&exit
)
echo.
  ) else (
rd /q /s %bakpath%&md %bakpath%
xcopy /e /y "%spath%\%y%\%m:~-2%\*.*" "%bakpath%\%y%\%m:~-2%\"
echo.
rd /q /s "%spath%\%y%\%m:~-2%\"
  )
echo.
echo %y%年%m:~-2%月%,执行完毕^^!
echo.
pause&exit /b




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