1
我想提取在路徑字符串中找到的第一個數字。如何從BATCH中的字符串中提取數字
一些例子
c:\dir\release1\temp should extract: 1
c:\dir\release11\temp should extract: 11
c:\dir\release1\temp\rel2 should extract: 1
c:\dir\release15a\temp should extract: 15
我當前的代碼,即循環槽文件夾名稱,並測試文件夾的名字是一個數字(我在這裏需要一些變化):
setlocal enableextensions enabledelayedexpansion
set line=one\two\three\4\pet\0\sest\rel6\a
rem set line=%cd%
:processToken
for /f "tokens=1* delims=\" %%a in ("%line%") do (
echo Token: %%a
set line=%%b
rem need fix here: need to extract number from string
echo %%a|findstr /r /c:"^[0-9][0-9]*$" >nul
if errorlevel 1 (echo not a number) else (echo number)
)
if not "%line%" == "" goto :processToken
endlocal
謝謝!
編輯: 我想解析該路徑字符串中的數字。 嗯,我發現的解決方案只檢查字符串的最後3個字符。現在可以。
::test last 3 characters
set relno=!token:~-3,3!
echo !token:~-3,3!|findstr /r /c:"^[0-9]*$" >nul
if errorlevel 1 (echo not number) else (echo number)
::test last 2 characters
set relno=!token:~-2,2!
echo !token:~-2,2!|findstr /r /c:"^[0-9]*$" >nul
if errorlevel 1 (echo not number) else (echo number)
::test last character
set relno=!token:~-1,1!
echo !token:~-1,1!|findstr /r /c:"^[0-9]*$" >nul
if errorlevel 1 (echo not number) else (echo number)
你有什麼期待與您的測試線? 406或4或6或...? – jeb 2011-05-25 08:38:19
你的問題是什麼?你的問題是什麼? – 2011-05-25 08:40:46
jeb:如果字符串是:「406」它應該返回整數:406 PA:我想解析路徑字符串中的數字。已經找到解決方案 - se編輯 – OldFox 2011-05-25 11:06:22