cmd格式的用户输入

时间:2016-08-30 14:17:23

标签: batch-file cmd

我尝试翻译格式如下的输入:abcd12-34defg并将其翻译为:ab-cd-12-34-de-fg

我的代码:

@echo off
:start
set /p macid="please enter mac id:" 
echo %macid%
goto start

当前输出:

please enter mac id: abcd12-34defg    
abcd12-34defg

目标:

please enter mac id: abcd12-34defg    
ab-cd-12-34-de-fg

1 个答案:

答案 0 :(得分:0)

好吧,如果这是固定的输入格式,这将起作用:

@echo off
setlocal EnableDelayedExpansion

set /p macID="please enter mac id:" 

call :print_token 0 2 -
call :print_token 2 2 -
call :print_token 4 2 -
call :print_token 7 2 -
call :print_token 9 2 -
call :print_token 11 2 

goto :eof

:print_token
echo | set /p dummyVar=!macID:~%1,%2!%3
exit /b 0

关于echo | set /p dummyVar=,它用于echo值,没有换行符。请查看this以获取更多信息。

如果您希望使用非固定输入格式,则需要首先清除外部字符,然后像本示例中所示进行拆分。清除输入值后,您可以轻松地将call :print_token序列转换为for循环,以提高清晰度。

示例运行:

please enter mac id:abcd12-34defg
ab-cd-12-34-de-fg