Board logo

标题: [文本处理] [已解决]bat怎样判断用户输入的密码是否正确? [打印本页]

作者: 7016427    时间: 2015-6-6 07:56     标题: [已解决]bat怎样判断用户输入的密码是否正确?

@echo off
set /p pw=请输入密码:
if "%pw%"=="jyzr" (

set /p d="请输入删除日期 (2015-05-01) "
set d=%d:/=%
set d=%d:-=%
cd /d d:\统计\
for /f "skip=1 tokens=1-6*" %%a in ('dir /a-d ^|find ":"') do (
        set t=%%a
               set t=!t:-=!
                set t=!t:/=!
if !t! leq !d! del /q "%%d" !t!
)
) ELSE if "%pw%" NEQ "jyzr" (echo 对不起,密码错误!
)
if "%pw%" NEQ "jyzr" (echo 删除文件失败!) ELSE (echo 删除文件成功!
)  

pause>nul
谢谢!
作者: 7016427    时间: 2015-6-6 11:19

回复 1# 7016427
@echo off
set /p pw=请输入密码:
if "%pw%"=="jyzr" (
set /p d="请输入删除日期 (2015-05-01) "
set d=%d:/=%
set d=%d:-=%
cd /d d:\统计\
for /f "skip=1 tokens=1-6*" %%a in ('dir /a-d ^|find ":"') do (
        set t=%%a
               set t=!t:-=!
                set t=!t:/=!
if !t! leq !d! del /q "%%d" !t!
)
echo 删除成功! ) ELSE if "%pw%" NEQ "jyzr" (echo 密码错误!删除失败!
)
pause>nul
以上改后,执行仍然失败!
作者: 7016427    时间: 2015-6-6 11:43     标题: 【[奇怪,求助高手]】bat奇怪难题,请高手瞧瞧、看看代码何处错误

[奇怪,求助高手]回复 1# 7016427

@echo off&setlocal EnableDelayedExpansion
set /p d="请输入删除日期 (2015-05-01) "
set d=%d:/=%
set d=%d:-=%
cd /d d:\统计\
for /f "skip=1 tokens=1-6*" %%a in ('dir /a-d ^|find ":"') do (
        set t=%%a
               set t=!t:-=!
                set t=!t:/=!
if !t! leq !d! del /q "%%d" !t!
)
echo 成功删除%d%之前的文件!
pause>nul
补充,按以上代码执行成功,能够删除满足的文件,但是,添加密码语句执行失败!
作者: bailong360    时间: 2015-6-6 12:36

本帖最后由 bailong360 于 2015-6-6 12:39 编辑
  1. @echo off
  2. set /p pw=请输入密码:
  3. if not "%pw%"=="jyzr" (
  4.     echo 对不起,密码错误
  5.     echo 删除文件失败
  6.     pause>nul&exit
  7. )
  8. set /p d=请输入删除日期(2015-05-01)
  9. set d=%d:/=-%
  10. for /f "delims=" %%i in ('dir /a-d /b') do (
  11.     for /f "tokens=1,2,3 delims=/- " %%j in ("%%~ti") do (
  12.         if "%%j-%%k-%%l" leq "%d%" del "%%i"
  13.     )
  14. )
  15. echo 删除文件成功
  16. pause>nul
复制代码
PS  可以点击帖子左下角的编辑来修改帖子,不必要发这么多次
作者: 7016427    时间: 2015-6-6 13:51     标题: [未得到解决]bat奇怪难题,请高手瞧瞧、看看代码何处错误

[未得到解决]回复 4# bailong360
测试存在问题:要误删文件,如,我要删除2015年5月10日之前的文件,包括5月10日那天的文件都要删除。我输入日期:2015-05-10测试的结果是:把5月10日前和5月10日之后的文件都删除了,而5月10日那天的文件没有删除。
作者: yangfengoo    时间: 2015-6-6 14:27

回复 5# 7016427


@echo off
set /p pw=请输入密码:

@echo off&setlocal EnableDelayedExpansion
set /p d="请输入删除日期 (2015-05-01) "

那么明显掉了setlocal EnableDelayedExpansion ,加在开头。
作者: bailong360    时间: 2015-6-6 14:58

回复 5# 7016427
我这里测试没有问题




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