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

[ 新手习题] 批处理去除字符串前所有的0

用户输入一串字符后,去除此字符串前所有的0。

例如:
014   ----->   14
040   ----->   40
002740   ----->   2740

最优方案:10分;
一般方案:5分;
判断是否为纯数字:3分。

参考:for语句从入门到精通

[ 本帖最后由 yslyxqysl 于 2009-1-15 20:39 编辑 ]

也发一个吧,没考虑太多
  1. @echo off&setlocal enabledelayedexpansion
  2. set /p sr=请输入数字:
  3. for /l %%a in (0 1 1000) do (set sw=!sr:~%%a,1!&if not "!sw!"=="0" (call :qc %%a))
  4. :qc
  5. set aa=%1
  6. goto ii
  7. :ii
  8. set sc=!sr:~%aa%!
  9. echo %sc%
  10. goto end
  11. :end
  12. pause>nul&exit
复制代码

TOP

rat 发表于 2009-1-15 22:54



   
批处理文件当js文件用,学习了……

TOP

本帖最后由 shelluserwlb 于 2014-11-9 17:24 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. :again
  4. set /p n=请输入一段字符(纯数字):
  5. echo %n%|findstr "^[0-9][0-9]*$">nul||goto again
  6. for /l %%i in (0,1,1000) do (
  7.     echo !n:~%%i,1!|findstr "0" >nul||(echo !n:~%%i! & goto :end)
  8. )
  9. :end
  10. pause
复制代码

TOP

@echo off
echo 请输入内容
set /p a=

:a
if %a:~0,1% neq 0 goto :b
set a=%a:~1%
goto :a

:b
echo %a%
pause

TOP

本帖最后由 battab 于 2014-2-18 22:51 编辑

回复 1# yslyxqysl
  1. @echo off
  2. :r
  3. set "input="
  4. set /p input=请输入要入理的数字串:
  5. echo %input%|findstr "^[0-9][0-9]*$">nul||(echo 包含非数字)&&goto r
  6. set str=%input%
  7. :l
  8. if "%str:~0,1%"=="0" (set str=%str:~1%) else (goto end)
  9. goto l
  10. :end
  11. echo %str%
  12. pause>nul
  13. echo 继续请按r,退出请按任意键。
  14. set "enter="
  15. set /p enter=请输入:
  16. if "%enter%"=="r" goto r else exit
复制代码
学习中

TOP

  1. @echo off
  2. set /p n=请输入字符串:
  3. echo %n%|findstr "^[0-9][0-9]*$">nul
  4. if errorlevel 1 echo 不是纯数字&pause&goto :eof else (
  5. :loop
  6. if "%n:~0,1%"=="0" (
  7. set n=%n:~1%
  8. echo %n%
  9. goto loop
  10. ) else goto ex    ::一旦出现第一个不是0的字符则跳出
  11. )
  12. :ex
  13. echo %n%
  14. pause
复制代码

TOP

哈哈 各有千秋呀

TOP

  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. set /p d=用户输入一串字符:
  4. for %%i in (%d%) do (
  5. set a=%%i
  6. set b=!a:~1,5!
  7. set c=!b:~-4!
  8. echo !c!
  9. )
  10. pause
  11. set a=
  12. set b=
  13. set c=
  14. set d=
复制代码

TOP

我菜鸟而且,来瞧瞧

TOP

  1. @echo off
  2. :input
  3. cls
  4. set /p str=请输入一串字符(纯数字):
  5. echo.%str%|findstr "^[0-9]*$">nul|| (cls& echo 所输入的不是纯数字,请重新输入& pause& goto input)
  6. for /f "delims=0 tokens=1*" %%i in ("10%str%") do set str2=%%j
  7. cls
  8. echo 你输入的字符串为:%str%
  9. echo 去前面所有的零为:%str2%
  10. pause
  11. goto input
复制代码

TOP

  1. @echo off
  2. set /p str=请输入字符:
  3. :begin
  4. set a=%str:~0,1%
  5. if  not %a%==0 (goto eof) else ( set %a%==""&&set str=%str:~1%&&goto begin )
  6. :eof
  7. echo %str%
  8. pause
复制代码

[ 本帖最后由 cainiao736 于 2009-3-26 22:33 编辑 ]

TOP

我来凑一个
  1. @echo off
  2. set /p num=please input number:
  3. :start
  4. set var=%num:~0,1%
  5. if %var% equ 0 (set num=%num:~1% & goto start) else (echo %num% & pause)
复制代码
(*^_^*)

TOP

回复 1楼 的帖子

  1. @echo off
  2. set /p str=
  3. echo. %str%
  4. echo *****************************
  5. if %str:~0,1% neq 0 (echo This is not a numeral ---NaN  & echo bye & goto:eof)
  6. echo orginal str---%str%
  7. :one
  8. if %str:~0,1% equ 0 (set str=%str:~1% )
  9. if %str:~0,1% equ 0 goto one
  10. :end
  11. echo string after delete zero---- %str%
复制代码

[ 本帖最后由 myzwd 于 2009-2-28 17:31 编辑 ]

TOP

回复 14楼 的帖子

右上角有个按钮“新帖”
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表