从批处理文件中我想从以下字符串中提取数字653456
:
C:\Users\testing\AppData\Local\Test\abc123\643456\VSALBT81_COM
数字会改变,但它总是只是数字。
我目前的理论是搜索符合\alldigits\
的内容,然后用空格替换两个\
,但我无法理解它。
答案 0 :(得分:6)
假设数字始终是父文件夹(结束前的文件夹):
@echo off
set "str=C:\Users\testing\AppData\Local\Test\abc123\643456\VSALBT81_COM"
for %%F in ("%str%\..") do set "number=%%~nxF"
答案 1 :(得分:5)
编辑 - 代码示例适用于纠正评论中显示的错误
set d=C:\Users\testing\AppData\Local\Test\abc123\643456\VSALBT81_COM
for %%f in ("%d:\=" "%") do for /f %%n in ('echo %%f^|findstr /b /e /r "\"[0-9]*\""') do (
echo %%~n
)
在路径前面加上一个引号,拆分路径,用引号替换每个反斜杠一个空格和一个引号并附加一个引号(所以我们有一个要迭代的元素列表),并为每个部分检查它是否是仅由数字组成
答案 2 :(得分:1)
@echo off
setlocal EnableDelayedExpansion
set "string=C:\Users\testing\AppData\Local\Test\abc123\643456\VSALBT81_COM"
for /L %%d in (0,1,9) do set "string=!string:\%%d=\ %%d!"
for /F "tokens=2" %%a in ("%string%") do for /F "delims=\" %%b in ("%%a") do echo Number: [%%b]
答案 3 :(得分:0)
这使用了来自 - https://www.dropbox.com/s/qidqwztmetbvklt/repl.bat
的名为repl.bat
的帮助程序批处理文件
@echo off
set "string=C:\Users\testing\AppData\Local\Test\abc123\643456\VSALBT81_COM"
echo "%string%"|repl ".*\\([0-9]*)\\.*" "$1"