从Windows shell脚本中的字符串中提取数字
我有这样一个字符串,脚本文件hello-1234-something。我需要得到1234使用批处理文件。但是数字1234不一样,它一直在变化,我需要在字符串中找到数字,然后只取出数字。我不熟悉批处理文件编程。我想成批地做这件事试试这个:从Windows shell脚本中的字符串中提取数字,windows,for-loop,batch-file,cmd,Windows,For Loop,Batch File,Cmd,我有这样一个字符串,脚本文件hello-1234-something。我需要得到1234使用批处理文件。但是数字1234不一样,它一直在变化,我需要在字符串中找到数字,然后只取出数字。我不熟悉批处理文件编程。我想成批地做这件事试试这个: @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
@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%
注意:这不适用于特殊字符,例如:
&|^代码>如果您的字符串始终具有字符串连字符编号连字符字符串的形式(例如,foo-23-bar
,some-205-or-other
,…),您可以执行以下操作:
@echo off
setlocal
set "string=foo-23-bar"
for /f "tokens=2 delims=-" %%n in ("%string%") do set "num=%%n"
echo %num%