0

我读出了一个可以从“1”到“999999”的变量。

它表示以 3 位数字名称构建的目录结构。所以它们在两个级别中都以“001”开头并以“999”结尾。

一种方法是获取 var,如果它小于 6 位,则将其填满,然后获取前三个并将它们返回到新的 var 中。

If the returned value is:       1 -> it represents:  000001 and i need: 000
If the returned value is:     999 -> it represents:  000999 and i need: 000
If the returned value is:    3999 -> it represents:  003999 and i need: 003
If the returned value is:   99999 -> it represents:  099999 and i need: 099
If the returned value is:  999999 -> it represents:  999999 and i need: 999

我真的很感谢一些代码以一种节省和智能的方式处理它。

4

2 回答 2

2

在变量前面加上 5 个零,然后提取最后 6 位数字中的前 3 位:

C:\>set "a=3999"
C:\>set "b=00000%a%"
C:\>set "c=%b:~-6,3%"
C:\>echo %c%
003
于 2013-10-27T19:32:21.320 回答
1

取决于ansgars的想法:

set "a=3999"
set "b=00000%a%"
set "c=%b:~-6%"
set "d=%c:~0,3%"
echo %d%

会工作 - 虽然它看起来不像是非常优雅的编码。有更好的方法吗?

于 2013-10-27T21:14:58.593 回答