标题: [文本处理] 基本上【已解决】账户录入的批处理有没有什么改进的(没试机过) [打印本页]
作者: nwdxlgzs 时间: 2019-2-12 16:47 标题: 基本上【已解决】账户录入的批处理有没有什么改进的(没试机过)
本帖最后由 nwdxlgzs 于 2019-2-13 14:30 编辑
没试呢,因为是手机打的。不知道有什么问题。看看有没有可以改动的…?
基本上都是echo和if判断,我不会特殊字符识别过滤,所以就只好创建文件靠改名字触发错误代码验证了,好像那个错误提示是1(总之就是不能命名那个),这样做有文件生成,不好。我也不知道,有没有别的办法。- @echo off
-
- :初始化
- if not exist "非法字符验证容器.ini" cd.>非法字符验证容器.ini
- setlocal enabledelayedexpansion
- title=用户注册端
- set "returna=0"
- set "returnb=0"
- set "returnc=0"
-
- :声明
- echo=声明
- echo=——————————————————————————
- echo=抱歉,为了便利程序开发,注册端没有GUI界面。
- echo=注册也就一次的事,往后您不会一直面对命令行操作的。
- echo=(强行找借口掩饰,Emmm)
- echo=注册端没有恶意代码,请放心使用。
- echo=——————————————————————————
- echo=按任意键跳过10秒声明的等待
- timeout 10 >nul
-
- :注册录入账号
- CLS
- echo=验值提示框
- echo=^+———————————^+
- if "!returna!"=="0" if "!returnb!"=="0" if "!returnc!"=="0" echo=^|暂无消息 ^|
- if "!returna!"=="1" echo=^|请输入8位以上的字符^! ^|
- if "!returnb!"=="1" echo=^|请输入20位以内的字符^! ^|
- if "!returnc!"=="1" echo=^|出现非法字符^! ^|
- echo=^+———————————^+
-
- ::账号输入
- set /p typeaccount=注册账号:
-
- ::账号输入判断模块
- if "!typeaccount:~7,1!"=="" (set "returna=1"&set "returnc=0"&set "returnb=0"&goto 注册录入账号) else (set "returnc=0"&set "returnb=0"&set "returna=0")
- if "!typeaccount:~20,1!" neq "" (set "returnb=1"&goto 注册录入账号) else (set "returnb=0")
- ren "非法字符验证容器.ini" "!typeaccount!.ini"
- if not exist "非法字符验证容器.ini" (if exist "!typeaccount!.ini" (set "returnc=0) else (set "returnc=1"&goto 注册录入账号)) else (set "returnc=1"&goto 注册录入账号)
- echo=账号符合要求。
-
- ::判断参数归零
- ren "!typeaccount!.ini" "非法字符验证容器.ini"
- set "returna=0"
- set "returnb=0"
- set "returnc=0"
-
- :注册录入密码
- CLS
- echo=您正为!typeaccount!账号设置密码
- echo=验值提示框
- echo=^+———————————^+
- if "!returna!"=="0" if "!returnb!"=="0" if "!returnc!"=="0" echo=^|暂无消息 ^|
- if "!returna!"=="1" echo=^|请输入8位以上的字符^! ^|
- if "!returnb!"=="1" echo=^|请输入20位以内的字符^! ^|
- if "!returnc!"=="1" echo=^|出现非法字符^! ^|
- echo=^+———————————^+
-
- ::密码输入
- set /p typepassword=输入密码:
-
- ::密码输入判断模块
- if "!typepassword:~7,1!"=="" (set "returna=1"&goto 注册录入密码) else (set "returnc=0"&set "returnb=0"&set "returna=0")
- if "!typepassword:~20,1!" neq "" (set "returnb=1"&set "returnc=0"&set "returnb=0"&goto 注册录入密码) else (set "returnb=0")
- ren "非法字符验证容器.ini" "!typepassword!.ini"
- if not exist "非法字符验证容器.ini"(if exist "!typepassword!.ini" (set "returnc=0") else (set "returnc=1"&goto 注册录入密码)) else (set "returnc=1"&goto 注册录入账号)
- echo=密码符合要求
-
- ::残留处理
- ren "!typepassword!.ini" "非法字符验证容器.ini"
- set "returna=0"
- set "returnb=0"
- set "returnc=0"
- del /f /q 非法字符验证容器.ini
- set "errorlevel=0"
-
- :创建用户
- echo=您的账号是!typeaccount!
- echo=您的密码是!typepassword!
- echo=请您牢记。
- echo=写入数据中。
- echo [用户信息]>!typeaccount!.ini
- echo 账号=!typeaccount!>>!typeaccount!.ini
- echo 密码=!typepassword!>>!typeaccount!.ini
- echo 注册日期=!date!!time!>>!typeaccount!.ini
- echo.>>!typeaccount!.ini
- echo [编译支持]>>!typeaccount!.ini
复制代码
作者: Batcher 时间: 2019-2-12 19:20
这个代码主要是想实现什么功能?
作者: nwdxlgzs 时间: 2019-2-12 21:41
本帖最后由 nwdxlgzs 于 2019-2-12 21:44 编辑
回复 2# Batcher
主要是完成账户录入(这里不是要特别严格的加密,只是要注册账号密码),在这里使用数据的应用正在写,这个不需要联网,纯粹是面对个人使用。不考虑盗号问题。这个录入好比程序多开一样。相当于一个命令行的录入器。不过,我想优化代码(并且能提示不能录入非法字符,因为这个影响将来程序使用)。目前这种方法过于繁杂,也不知道可靠度如何。
作者: nwdxlgzs 时间: 2019-2-12 21:55
我再说一下吧。
1这是一个账户录入程序,对账户没有加密的必要(其次加密后对我写程序是硬伤,一切都是入门,网上搜html,手里有python3,打算用electron做html为GUI的程序,我手里还有一个开源的C#的electron兼容层,苦笑)。跑题了,这个就是一个注册页面。
2思想,利用函数判断8到20位之外做提示(回到页面,由于函数被定义,if句子起作用显示提示)。最后注入一个基本文件(后面的[编译支持]后要添加其他后期数据)
3问题,主要是想无创建文件情况识别非法字符并以函数返回(不是指win下不让创建的字符,我是想禁用标点,但是可以有数字,英文或中文,这个过滤工作有点难受)
作者: nwdxlgzs 时间: 2019-2-12 21:57
简单的说,就是一个以注册样式的文本创建程序,但是需要给程序添佐料
作者: Batcher 时间: 2019-2-12 22:40
set "errorlevel=0"
这个命令是多余的
errorlevel是个默认的系统环境变量
作者: Batcher 时间: 2019-2-12 22:42
功能类似的代码段可以考虑合并成一个子函数,例如:
注册录入账号、注册录入密码
账号输入判断模块、密码输入判断模块
作者: nwdxlgzs 时间: 2019-2-12 23:03
回复 7# Batcher
是用同一模块,然后在录入时额外设一个函数吗,这样腾出一个函数做同样的判断?
顺道问一下,这个代码注册效果如何(这几天都可能用不了电脑)
作者: nwdxlgzs 时间: 2019-2-13 14:27
回复 7# Batcher
暂时不弄了,今天试了试代码,现在改进了,已解决
作者: nwdxlgzs 时间: 2019-2-13 14:29
回复 6# Batcher
最终用了一个if的嵌套解决了,至少这样操作心里有谱(各个方式检测)
作者: nwdxlgzs 时间: 2019-2-13 15:05
- @echo off
-
- :初始化
- if not exist "非法字符验证容器.ini" cd.>非法字符验证容器.ini
- setlocal enabledelayedexpansion
- title=用户注册端
- set "returna=0"
- set "returnb=0"
- set "returnc=0"
-
- :声明
- echo=声明
- echo=——————————————————————————
- echo=抱歉,为了便利程序开发,注册端没有GUI界面。
- echo=注册也就一次的事,往后您不会一直面对命令行操作的。
- echo=(强行找借口掩饰,Emmm)
- echo=注册端没有恶意代码,请放心使用。
- echo=——————————————————————————
- echo=按任意键跳过10秒声明的等待
- timeout 10 >nul
-
- :注册录入账号
- CLS
- echo=验值提示框
- echo=^+———————————^+
- if "!returna!"=="0" if "!returnb!"=="0" if "!returnc!"=="0" echo=^|暂无消息 ^|
- if "!returna!"=="1" echo=^|请输入8位以上的字符^! ^|
- if "!returnb!"=="1" echo=^|请输入20位以内的字符^! ^|
- if "!returnc!"=="1" echo=^|出现非法字符^! ^|
- echo=^+———————————^+
-
- ::账号输入
- set /p typeaccount=注册账号:
-
- ::账号输入判断模块
- if "!typeaccount:~7,1!"=="" (set "returna=1"&set "returnc=0"&set "returnb=0"&goto 注册录入账号) else (set "returnc=0"&set "returnb=0"&set "returna=0")
- if "!typeaccount:~20,1!" neq "" (set "returnb=1"&goto 注册录入账号) else (set "returnb=0")
- ren "非法字符验证容器.ini" "!typeaccount!.ini"
- if not exist "非法字符验证容器.ini" (if exist "!typeaccount!.ini" (set "returnc=0) else (set "returnc=1"&goto 注册录入账号)) else (set "returnc=1"&goto 注册录入账号)
- echo=账号符合要求。
-
- ::判断参数归零
- ren "!typeaccount!.ini" "非法字符验证容器.ini"
- set "returna=0"
- set "returnb=0"
- set "returnc=0"
-
- :注册录入密码
- CLS
- echo=您正为!typeaccount!账号设置密码
- echo=验值提示框
- echo=^+———————————^+
- if "!returna!"=="0" if "!returnb!"=="0" if "!returnc!"=="0" echo=^|暂无消息 ^|
- if "!returna!"=="1" echo=^|请输入8位以上的字符^! ^|
- if "!returnb!"=="1" echo=^|请输入20位以内的字符^! ^|
- if "!returnc!"=="1" echo=^|出现非法字符^! ^|
- echo=^+———————————^+
-
- ::密码输入
- set /p typepassword=输入密码:
-
- ::密码输入判断模块
- if "!typepassword:~7,1!"=="" (set "returna=1"&goto 注册录入密码) else (set "returnc=0"&set "returnb=0"&set "returna=0")
- if "!typepassword:~20,1!" neq "" (set "returnb=1"&set "returnc=0"&set "returnb=0"&goto 注册录入密码) else (set "returnb=0")
- ren "非法字符验证容器.ini" "!typepassword!.ini"
- if not exist "非法字符验证容器.ini"(if exist "!typepassword!.ini" (set "returnc=0") else (set "returnc=1"&goto 注册录入密码)) else (set "returnc=1"&goto 注册录入账号)
- echo=密码符合要求
-
- ::残留处理
- CLS
- ren "!typepassword!.ini" "非法字符验证容器.ini"
- set "returna=0"
- set "returnb=0"
- set "returnc=0"
- del /f /q 非法字符验证容器.ini
- set "errorlevel=0"
-
- :创建用户
- echo=您的账号是!typeaccount!
- echo=您的密码是!typepassword!
- echo=请您牢记。
- echo=写入数据中。
- echo [用户信息]>!typeaccount!.ini
- echo 账号=!typeaccount!>>!typeaccount!.ini
- echo 密码=!typepassword!>>!typeaccount!.ini
- echo 注册日期=!date!!time!>>!typeaccount!.ini
- echo.>>!typeaccount!.ini
- echo [编译支持]>>!typeaccount!.ini
- xcopy /c /y "!typeaccount!.ini" %~dp0用户\
- del /f /q "!typeaccount!.ini"
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |