2016-09-12 13 views
0

"C:\ data \ dbversion_1.0.2099.24765.txt"のようなファイル名があります。このファイル名は1日を通して変わります。バッチ - ファイル名の一部を取得し、変数に割り当てます

このファイル名 "1.0.2099.24765"の最後の部分だけを取得し、この値を任意の変数に割り当てたいとします。 (一般に「dbversion_」と「.txt」の間のデータである必要があります)

どうすればいいですか?

答えて

0

、実際のファイル名を取得する拡張子が離脱して、純粋なファイル名を取得するためにfor /Fループによって、その出力を解析し、(最初の)_を強調した後、すべてを取得する部分文字列置換を使用するdirコマンドを使用します。

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

関連する問題