我有一个像这样的文件名“C:\ data \ dbversion_1.0.2099.24765.txt”。此文件名全天不同。
我想只获取此文件名“1.0.2099.24765”的最后一部分,并将此值分配给任何变量。 (通常它应该是“dbversion_”和“.txt”之间的数据)
我该怎么做?
答案 0 :(得分:0)
使用dir
命令获取实际文件名,通过for /F
循环解析其输出以获取扩展名为split off的纯文件名,然后使用substring replacement来获取(第一)强调_
:
rem Let `dir` get the actual file name, parse its output by `for /F`:
for /F "eol=| delims=" %%F in ('
dir /B /A:-D "C:\data\dbversion_*.txt"
') do (
set "NAME=%%~nF"
)
rem Do substring replacement:
set "NAME=%NAME:*_=%"
rem Use variable `%NAME%` here:
echo "%NAME%"
简单的标准for
循环也可以实现相同的结果:
rem Let `for` get the actual file name:
for %%F in ("C:\data\dbversion_*.txt") do (
set "NAME=%%~nF"
)
rem Do substring replacement:
set "NAME=%NAME:*_=%"
rem Use variable `%NAME%` here:
echo "%NAME%"