[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] 纯DOS下接受字符输入的写法

  1. @echo off
  2. set /p input=请输入:
  3. set num1=%input%
  4. set num2=123
  5. if %num1% equ %num2% echo "="
  6. if %num1% lss %num2% echo "<"
  7. if %num1% gtr %num2% echo ">"
  8. pause>nul
复制代码
这样一段代码,在纯dos下无法执行,在网上查到是说set在纯DOS中是不带开关的,所以set /p无效,
但是没找到解决办法,请问大佬们帮忙解答,谢过先。

纯DOS唉,只是蜻蜓点水般接触过,已经找不到北了。

TOP

不好意思
把很早前的链接翻出来
也没有检查
更新一下

http://www.netikka.net/tsneti/pc/link/tsbat.zip
http://lipas.uwasa.fi/~ts/garbo.html
天的白色影子

TOP

回复 18# qzwqzw


    下不了哟,要翻墙吗?

TOP

本帖最后由 qzwqzw 于 2014-11-28 20:39 编辑

不用第三方的方案也很多
Fc con、copy con、basic、%comspec%、ascode等等

建议你先看一下Timo Salmi教授的
Useful MS-DOS batch files and tricks
ftp://garbo.uwasa.fi/pc/link/tsbat.zip
http://www.netikka.net/tsneti/pc/link/tsbat.zip

附带链接
http://lipas.uwasa.fi/~ts/garbo.html
天的白色影子

TOP

本帖最后由 apang 于 2013-10-17 18:25 编辑

保存为test.bat,需要strings和wbat
  1. @echo off
  2. :_Loop
  3. cls
  4. set var=
  5. set Input=456
  6. set Num=123
  7. call w.bat box @test.bat:_Choice #1
  8. if errorlevel 100 goto _Exit
  9. if %?%#==1# goto _Start
  10. if %?%#==2# goto _Exit
  11. :_Choice "输入比较的数值:"
  12.         [$Input,8,U! ]
  13. [ 确定(&S)]    [ 取消(&C)]
  14. ::
  15. :_Start
  16. strings var=SUB %Input%,%Num% 2>nul
  17. if errorlevel 1 goto _Lss
  18. if %var%#==0# goto _Equ
  19. echo ">"
  20. pause
  21. goto _Loop
  22. :_Equ
  23. echo "="
  24. pause
  25. goto _Loop
  26. :_Lss
  27. echo "<"
  28. pause
  29. goto _Loop
  30. :_Exit
  31. exit
复制代码
用 strings 除法运算貌似不行,改成减法运算

TOP

回复 13# wangx


是在DOS系统里面执行吗?
DOS里面的for命令不支持 /l 这种选项
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

现在都什么年代了。

TOP

上面的好像答非所问了...看错题目
foxJL 发表于 2013-10-16 21:13

你能看看上面那个问题么,谢谢。

TOP

本帖最后由 wangx 于 2013-10-16 23:13 编辑
纯dos下用wbat.com
好久没碰这东西了,抱歉不能直接给你代码
fastslz 发表于 2013-10-16 21:54

谢谢你的回答,我有个问题想请教一下。
d:\dos下有一些文件,MFcY5.rmvb_1.!mv,MFcY5.rmvb_2.!mv,MFcY5.rmvb_3.!mv....MFcY5.rmvb_20.!mv
我想通过copy MFcY5.rmvb_1.!mv+MFcY5.rmvb_2.!mv+MFcY5.rmvb_3.!mv...+MFcY5.rmvb_20.!mv变成MFcY5.rmvb
我在d:\dos执行这个bat,提示“系统找不到指定文件”,应该是路径的问题,但不知道怎么改,你能帮我解答么,谢谢。
  1. @echo off
  2. set p="%~dp0MFcY5.rmvb_"
  3. for /l %%i in (1,1,5) do (
  4.     call,set p=%%p%%+"%~dp0MFcY5.rmvb_%%i.!mv"
  5. )
  6. echo %p:~21%
  7. copy /b %p% "d:\dos\MFcY5.rmvb"
  8. pause
复制代码

TOP

纯dos下用wbat.com
好久没碰这东西了,抱歉不能直接给你代码

TOP

上面的好像答非所问了...看错题目

TOP

回复 7# wangx
  1. for /l %%i in (1,1,100) do ( set/a p+=%%i)
复制代码

TOP

  1. @echo off
  2. for /l %%a in (1,1,10) do (
  3.   set /a a+=%%a
  4.   call,set "ss=%%ss%%+%%a"
  5. )
  6. echo,%ss:~1%=%a%
  7. pause>nul
复制代码
***共同提高***

TOP

超级版主搞不定的话,估计群里也没人能搞定了。
版主我还有一个问题请教你,我想叠加字符串,但是不成功 ...
wangx 发表于 2013-10-16 20:59

我弄出来了,把%p%改成!p!就行。
看来纯dos下读输入值得问题还得好好研究一下啊,有高人知道怎么弄的话,小弟感激涕零啊。

TOP

返回列表