2016-09-12 83 views
0

我有一個類似於「C:\ data \ dbversion_1.0.2099.24765.txt」的文件名。這個文件名全天不一樣。批處理 - 獲取文件名的一部分並將其分配給變量

我只想得到這個文件名的後半部分「1.0.2099.24765」,並將這個值賦給任何變量。 (通常它應該是「dbversion_」和「.txt」之間的數據)

我該怎麼做?

回答

0

使用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%" 
+0

它的工作原理。謝謝。 – user1523087

相關問題