Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批次:从var中分割一个数字,如果短于3个字符,则填充长度_Batch File_Fill_Strip_Digit - Fatal编程技术网

Batch file 批次:从var中分割一个数字,如果短于3个字符,则填充长度

Batch file 批次:从var中分割一个数字,如果短于3个字符,则填充长度,batch-file,fill,strip,digit,Batch File,Fill,Strip,Digit,我读出了一个从“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 repre

我读出了一个从“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

我真的很想用一些代码来保存和智能地处理它。

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

C:\>set "a=3999"
C:\>set "b=00000%a%"
C:\>set "c=%b:~-6,3%"
C:\>echo %c%
003
C:\>设置“a=3999”
C:\>设置“b=00000%a%”
C:\>设置“C=%b:~-6,3%
C:\>回显%C%

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

C:\>set "a=3999"
C:\>set "b=00000%a%"
C:\>set "c=%b:~-6,3%"
C:\>echo %c%
003
C:\>设置“a=3999”
C:\>设置“b=00000%a%”
C:\>设置“C=%b:~-6,3%
C:\>回显%C%

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

C:\>set "a=3999"
C:\>set "b=00000%a%"
C:\>set "c=%b:~-6,3%"
C:\>echo %c%
003
C:\>设置“a=3999”
C:\>设置“b=00000%a%”
C:\>设置“C=%b:~-6,3%
C:\>回显%C%

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

C:\>set "a=3999"
C:\>set "b=00000%a%"
C:\>set "c=%b:~-6,3%"
C:\>echo %c%
003
C:\>设置“a=3999”
C:\>设置“b=00000%a%”
C:\>设置“C=%b:~-6,3%
C:\>回显%C%

003
根据ansgars的想法:

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

将工作-虽然它看起来不像是非常优雅的编码。有没有更好的方法帮助别人?

取决于ansgars的想法:

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

将工作-虽然它看起来不像是非常优雅的编码。有没有更好的方法帮助别人?

取决于ansgars的想法:

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

将工作-虽然它看起来不像是非常优雅的编码。有没有更好的方法帮助别人?

取决于ansgars的想法:

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

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

这将始终返回000,它只从末端到提取位置4-6起作用。这将始终返回000,它只从末端到提取位置4-6起作用。这将始终返回000,它只从末端到提取位置4-6起作用。这将始终返回000,它只能从末尾提取位置4-6。
%b:~-6,3%
将提取一个长度为3的子字符串,从最后第6个字符开始。似乎直到结尾我才重新显示手册页,谢谢
%b:~-6,3%
将提取一个长度为3的子字符串,从最后第6个字符开始。似乎我直到最后才将手册页变红,谢谢
%b:~-6,3%
将提取一个长度为3的子字符串,从最后第6个字符开始。似乎我直到最后才将手册页变红,谢谢
%b:~-6,3%
将提取一个长度为3的子字符串,从最后第6个字符开始。似乎我直到最后才刷新手册页,谢谢