Board logo

标题: for循环输出指定分隔符的串 [打印本页]

作者: wangbing111     时间: 2008-7-26 00:25    标题: for循环输出指定分隔符的串

set /p a=
for /f "delims=." %%i in ("%a%") do echo %i

输入1.2.3.4 怎么不输出1 2 3 4 ,如何才能达到效果
作者: bat-zw     时间: 2008-7-26 00:40
这肯定是不能输出1 2 3 4的,如下:
@echo off
set /p a=请输入:
for /f "tokens=1-4 delims=." %%i in ("%a%") do echo %%i %%j %%k %%l
pause>nul

作者: bat-zw     时间: 2008-7-26 00:44
或者:
@echo off
set /p a=请输入:
for %%i in (%a:.= %) do set /p=%%i <nul
pause>nul

作者: wangbing111     时间: 2008-7-26 00:50
其实我的输入里面不止4个数字,可能有10多个,而且里面还有空格
比如1.2.3.1 2.3.11.1 27.23.33.0 等等
我想输出每个单独的数,以 空格和点 为分隔符
作者: bat-zw     时间: 2008-7-26 00:55


  Quote:
Originally posted by wangbing111 at 2008-7-26 00:50:
其实我的输入里面不止4个数字,可能有10多个,而且里面还有空格
比如1.2.3.1 2.3.11.1 27.23.33.0 等等
我想输出每个单独的数,以 空格和点 为分隔符

3楼的代码完全可以做到啊,楼主试了没有?
作者: wangbing111     时间: 2008-7-26 01:23
确实可以,谢谢
作者: wangbing111     时间: 2008-7-26 01:34
如果我要想对每个数字做个判断,判断它是否在0到100 之间怎么写啊,如果是的话不处理,不是的话就报错
作者: bat-zw     时间: 2008-7-26 02:09

@echo off
set /p a=请输入:
for %%i in (%a:.= %) do (
    if %%i lss 0 (
       call :wrong %%i
       ) else (
       if %%i gtr 100 (
          call :wrong %%i
          ) else (
          echo %%i在0~100之间&echo.
)))
pause>nul&goto :eof
:wrong
echo %1不在0~100之间&echo.

作者: xyzzhu     时间: 2008-7-26 07:23
我还,第一次看到DOS命令还可以苷套~~晕死~~不过有点不太方便阅读~~
作者: dosjj     时间: 2008-7-31 15:24
3楼的代码是如何输出的呢?看不懂???
@echo off
set /p a=请输入:
for %%i in (%a:.= %) do set /p=%%i <nul
pause>nul
作者: HAT     时间: 2008-7-31 15:33
set /p=%%i 等待用户输入
<nul 自动输入
作者: xinxinchen603     时间: 2008-8-3 17:36    标题: 什么意思

我都不懂啊!!
能写的具体些吗!!