BATCH文件中的数字

时间:2015-10-02 15:46:58

标签: batch-file

假设我们有数字“256” 我希望我的程序检测到左边的第一个数字是2,第二个5,第三个6

你有任何想法或是否有某些命令?

3 个答案:

答案 0 :(得分:0)

您可以使用变量子字符串扩展的语法 - 在控制台中键入set /?以获取更多信息:

set NUM=256
echo 1st digit:  %NUM:~0,1%
echo 2nd digit:  %NUM:~1,1%
echo 3rd digit:  %NUM:~2,1%

答案 1 :(得分:0)

您可以使用aschipfl的方法,也只能使用包含3个单独子串的字符串。无论如何,我的方法适用于0~最大字符串长度。

@echo off
setlocal EnableDelayedExpansion

set "myvar=some_string"
set "define_myvar=%myvar%"
set length=0

echo Original String: %myvar%
echo.

:loop
if defined define_myvar (
    set define_myvar=!define_myvar:~1!
    set substr=!myvar:~%length%,1!

    echo !substr!

    set /a length += 1
    goto :loop
)

pause >nul

答案 2 :(得分:0)

这是复杂的方式。它循环10位数(覆盖32位无符号整数)。 for /L循环通常比goto循环快。

@echo off
setlocal enabledelayedexpansion

set "num=256"

for /L %%I in (0,1,9) do (
    if "!num:~%%I,1!"=="" goto break
    set /a "digit[%%I] = !num:~%%I,1!"
)
:break

echo %num%
rem // display digit[] array
set digit

输出:

  

256
  位[0] = 2
  位[1] = 5
  数字[2] = 6