リリースアーチファクトを含むリリースの場所から最新のリリースのバージョンを判断する必要があります。 -最新のフォルダを取得するためのバッチスクリプト
1.4
1.4.1
1.5
1.5.1
1.5.2
latest
上記の例では、私のスクリプトは1.5.2を返さなければなりません。リリースエンジニアはlatest
という名前のフォルダを作成し、その中に最新のリリースアーティファクト(上記の1.5.2のコンテンツ)を入れます。最新のリリースを簡単にコピーできます。しかし、私の問題は、バージョンも印刷したいということです。ここに私の試みです: -
@echo off
SET Remote="\\path to release location"
SET newest=""
for /f %%a in ('dir %Remote% /b /od') do (if NOT %%a=="latest" SET newest=%%a)
echo %newest%
これは上の例でうまくいきます。しかし、リリースエンジニアはtmp
やその他のフォルダを作成することもあります(基本的に彼はクリーンアップを忘れてしまいます)。番号で始まるフォルダを簡単にソートする方法はありますか?最新リリースのバージョンを宣言してください。 @ Squashmanの提案どおり、ここで解決策を投稿この
dirコマンドの出力をFINDSTRにパイプし、番号付きのディレクトリ名だけを検索する正規表現を指定します。 'findstr/r"^[0-9] [0-9] * \ [0-9] [0-9] * "' – Squashman
のようなものです。 'latest'ディレクトリのリリース版も! – Compo
ありがとう@Squashman - これは私が思いついたものです: '/ f %% a in( 'dir%cd%/ b/od^| findstr/r"^[0-9] [0-9] * \。 [0-9] [0-9] * "')do(SET newest = %% a) @Compo:あなたのヒントをありがとう! – Zakir