仅过滤Windows cmd

时间:2016-04-08 14:42:49

标签: cmd numbers output

我有一个文字,例如:

cd123aaq54 而且我只想将另一个文件中的数字分开,所以我可以

12354 在输出中。

我一直在尝试很多像

这样的命令

Get-Content text.txt | Select-String -Pattern'[0-9]' 在linux中它更容易,只是

grep -o'[0-9] [0-9] *'text>数字

我知道在Powershell中是 @(Get-Content text.txt)-replace'\ D','' 但它太慢了(我希望它循环) 我怎么能在经典cmd中做? 谢谢!

1 个答案:

答案 0 :(得分:0)

@ECHO OFF
SETLOCAL
SET "input=cd123aaq54"
CALL :numsonly result "%input%"
ECHO %input% --^> %result%
SET "input=cd5z43a q21p"
CALL :numsonly result "%input%"
ECHO %input% --^> %result%
GOTO :EOF

:numsonly
setlocal
SET "$1="
SET "$2=%~2"
:numsloop
IF "%$2:~0,1%" geq "0" IF "%$2:~0,1%" leq "9" SET "$1=%$1%%$2:~0,1%"
SET "$2=%$2:~1%"
IF DEFINED $2 GOTO numsloop

endlocal&SET "%1=%$1%"
GOTO :eof

如果需要,可以将:numsonly子例程放入单独的批处理文件中。