首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在批处理文件中解析和重新定义变量?

如何在批处理文件中解析和重新定义变量?
EN

Stack Overflow用户
提问于 2019-05-24 18:39:12
回答 2查看 241关注 0票数 0

我需要在我的vlan中平多个ip地址。

如何将2-4位变量解析为xx.xx?

代码语言:javascript
复制
If it is 4 digits(1111), it needs to be redefined as 11.11
If it is 3 digits(222), it needs to be 02.22
If it is 2 digits(77), it needs to be 00.77

我该怎么做?

我试过数弦,但在iy考试中不幸地失败了。

代码语言:javascript
复制
SET /P _inputname= Enter Your Input Number(2-4 Digits):
START cmd /k ping 10.%_inputname%.55 /t
START cmd /k ping 10.%_inputname%.66 /t
START cmd /k ping 10.%_inputname%.77 /t
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-24 18:55:20

用零准备这个数字,从第四位到第二位,打印一个点和最后两个位置。

代码语言:javascript
复制
:: Q:\Test\2019\05\24\SO_56298026.cmd
@Echo off
for %%A in (1111,222,77) do call :sub %%A
SET /P _inputname= Enter Your Input Number(2-4 Digits):
Call :sub %_inputname%
goto :Eof

:sub
set var=0000%1
Echo %Var:~-4,2%.%Var:~-2%

样本输出:

代码语言:javascript
复制
> Q:\Test\2019\05\24\SO_56298026.cmd
11.11
02.22
00.77
Enter Your Input Number(2-4 Digits):33
00.33
票数 3
EN

Stack Overflow用户

发布于 2019-05-25 12:41:24

这是另一种测试字符串长度的方法,但是这也不允许输入超过4个字符。

代码语言:javascript
复制
@echo off
setlocal EnableDelayedExpansion & set 4max=
:begin
set /p "str=Enter 2-4 digits: "
set "4max=%str:~4,1%
if defined 4max cls & echo you entered to many characters & goto begin
for /l %%i in (0,1,10) do if not "%str%"=="!str:~0,%%i!" (
    set /a ln+=1
 ) else goto :done
:done
if %ln% equ 4 set str=%str:~0,2%.%str:~2,2%
if %ln% equ 3 set str=0%str:~0,1%.%str:~1,2%
if %ln% equ 2 set str=00.%str%
echo(%str%
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56298026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档