gpt4 book ai didi

windows - 如何在 CMD/Batch 中将数字拆分为单个数字

转载 作者:可可西里 更新时间:2023-11-01 11:15:54 25 4
gpt4 key购买 nike

我想在 Windows 上使用 cmd/batch 将数字拆分成各个数字并将它们存储到变量中。例如,数字“38”应在 VAR1 中存储为“3”,在 VAR2 中存储为“8”。

这是我目前对这个问题的看法:

@echo off
SET NUMBER=38
FOR /F "TOKENS=1,2 delims=0123456789" %%A IN ("%NUMBER%") DO (CALL :VARSET %%A %%B)
ECHO %NUMBER% has the fallowing digits:
ECHO 1st digit: %VAR1%
ECHO 2nd digit: %VAR2%
PAUSE
EXIT /B 0

:VARSET
set VAR1=%1
set VAR2=%2
GOTO:EOF

我希望输出为:

ECHO 38 has the fallowing digits:
ECHO 1st digit: 3
ECHO 2nd digit: 8

但是我得到:

ECHO 38 has the fallowing digits:
ECHO 1st digit: Echo is off.
ECHO 2nd digit: Echo is off.

问题似乎是我使用“0123456789”作为分隔符。也许使用 FOR 循环根本无法做到这一点?

编辑:错别字

最佳答案

用简单的数学运算 - 我建议您从最低有效数字开始,以便能够轻松地重建值。

@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
:Again
set "#=" & Set Place=0
Set /p "#=Enter # :"
if "%#%" equ "" goto :Eof
Set /A Test=#
:Loop
Set /A "Place+=1,#[!Place!]=Test %% 10,Test/=10"
If "%Test%" gtr "0" goto :Loop
Set #
Echo =====
For /f "delims==" %%A in ('Set #') Do set "%%A="
Goto :Again

样本运行:

Enter # :123456789
#=123456789
#[0]=9
#[1]=8
#[2]=7
#[3]=6
#[4]=5
#[5]=4
#[6]=3
#[7]=2
#[8]=1
=====
Enter # :

关于windows - 如何在 CMD/Batch 中将数字拆分为单个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45756856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com