0
我有一個類似於「C:\ data \ dbversion_1.0.2099.24765.txt」的文件名。這個文件名全天不一樣。批處理 - 獲取文件名的一部分並將其分配給變量
我只想得到這個文件名的後半部分「1.0.2099.24765」,並將這個值賦給任何變量。 (通常它應該是「dbversion_」和「.txt」之間的數據)
我該怎麼做?
我有一個類似於「C:\ data \ dbversion_1.0.2099.24765.txt」的文件名。這個文件名全天不一樣。批處理 - 獲取文件名的一部分並將其分配給變量
我只想得到這個文件名的後半部分「1.0.2099.24765」,並將這個值賦給任何變量。 (通常它應該是「dbversion_」和「.txt」之間的數據)
我該怎麼做?
使用dir
命令來獲取實際的文件名,由for /F
循環解析它的輸出,以獲得純淨的文件名擴展名爲分裂出去,然後用字符串替換得到一切後(第一次)強調_
:
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%"
它的工作原理。謝謝。 – user1523087