我必须从包含发布工件的发布位置确定最新发布版本。以下是文件夹的外观: -批处理脚本获取最新文件夹
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
或其他文件夹(基本上他忘记了清理),并且破坏了我过滤掉“最新”的天真假设。有没有简单的方法来排序以数字开头的文件夹来声明最新版本的版本。
也请建议,如果有解决这个
将dir命令的输出传递给FINDSTR,并给它一个正则表达式来查找带有数字的目录名称。诸如此类的用于findstr:'findstr/r“^ [0-9] [0-9] * \。[0-9] [0-9] *”' – Squashman
只需要释放工程师将标记放置'latest'目录中的发布版本呢! – Compo
谢谢@Squashman - 下面是我想到的:'('dir%cd%/ b/od^| findstr/r“^ [0-9] [0-9] * \中的for/f %% a。 [0-9] [0-9] *“')do(SET newest = %% a)' @Compo:感谢您的提示! – Zakir