- 帖子
- 14
- 积分
- 67
- 技术
- 3
- 捐助
- 0
- 注册时间
- 2018-12-8
|
我的标题表达可能不太清楚。
意思是这样的:
管道符(|)可将前面的结果输出到后面的命令。如:
echo Y|del 1.txt
但比如,有一个程序,让输入一个数。但输入完你按回车时,不小心多敲了一个字符,比如引号。
这时程序会发现输入的不是数字。
但你输入的数字很长,总不能重新输入一遍吧。
为方便重新输入,将原来的结果先输出到set /p里。如:复制代码 以便实现在原来的基础上修改再输入。相信也明白我的意思了吧
但经测试,上面的代码是错误的。
求教:如何修改,使目的能达到?
如果能达到,再问一个问题:
如果用户输入的有类似=!%&的特殊字符,能否原样输出到set /p
附:目前的几种我找到的我不太满意的解决方式:
1.将原先结果用echo显示到屏幕上,让用户自行复制。
论:这种方法需要用户一行一行复制(因为显示时每一行后会有一个回车符),还不能用快捷键,所用时间也不亚于让用户重新输入一遍。
2.增加智能识别。
论:是,这样可以把最后一个多输入的字符删掉。但如果不止一个呢?或是用户输入的一长串数字中间有某处按错键了,把5按成了6,你能智能判断吗?
3.将原先结果输出到文本。让用户对文本修改后再从文本中提取
论:是,如果不考虑特殊字符,编码,行数等,这或许是一个选择。但是,你有没想过,如果一行过长呢?一个变量最多有8192个字,你能保证完整性不?set /p还能将长度控制在1021以内。
我用搜索功能只搜索到这几种成功的解决方法,想问还有解决方法不?
不管有没有,先在此谢谢大家了。 |
|