从Windows shell脚本中的字符串中提取数字

时间:2013-07-23 17:38:14

标签: windows for-loop batch-file cmd

我有一个像这样的字符串文件hello-1234-something。我需要使用批处理文件获得1234。但是数字1234不一样,它不断改变我需要在字符串中找到数字并只取出数字。我是批处理文件编程的新手。我想批量执行此操作

2 个答案:

答案 0 :(得分:2)

试试这个:

@ECHO OFF &SETLOCAL ENABLEDELAYEDEXPANSION
SET "teststring=abcDEFG1234ABSdefh"

FOR %%a IN (
    a b c d e f g h i j k l m n o p q r s t u v w x y z
        ) DO (
    SET "teststring=!teststring:%%a=!"
)
ECHO %teststring%

注意:这不适用于特殊字符,例如:<>&|!^

答案 1 :(得分:1)

如果您的字符串的格式为string-hyphen-number-hyphen-string(例如foo-23-barsome-205-orother,...),则可以执行以下操作:

@echo off

setlocal

set "string=foo-23-bar"

for /f "tokens=2 delims=-" %%n in ("%string%") do set "num=%%n"

echo %num%