запустить новейшую версию файла через пакет - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь найти самый простой способ вызвать новейшую версию файла в папке для запуска.

Например, C:\users\user\Desktop\filestest содержит 4 файла:

program-A.0011.exe
program-A.0012.exe
program-A.0013.exe
program-A.0014.exe

Если 0014 является самой новой версией, но, возможно, не последним измененным файлом.

cd C:\users\user\Desktop\filestest && program-A.%v%.exe с %v% как самой высокой переменной? Что мне здесь не хватает?

имейте в виду, что файлы отсортированы в произвольном порядке, я просто ищу способ вызвать последнюю версию. в этом случае 0014

Проверьте файлы .exe здесь

Ответы [ 2 ]

0 голосов
/ 15 октября 2019

понял это. Это может легко сломаться, если структура наименования изменится, но она делает именно то, что мне нужно сделать на данный момент. спасибо всем за вклад.

cd "%USERPROFILE%\Desktop\filetest"
setlocal enableDelayedExpansion
set max=0
for /f "tokens=1* delims=-.0" %%A in ('dir /b /a-d program-A.*.exe') do if %%B gtr !max! set max=%%B
echo higest version: program-%max%

pause
0 голосов
/ 10 октября 2019

Если имена файлов всегда отформатированы таким образом, чтобы «последний» был отсортирован последним, вы можете использовать цикл FOR, чтобы найти его. Это не проверено.

SET "THEDIR=%USERPROFILE%\Desktop\filestest"
FOR /F "delims=" %%A IN ('DIR /B /O:N "%THEDIR%\program-A.*.exe"') DO (SET "LATEST=%%~a")
ECHO The latest file is "%THEDIR%\%LATEST%"

Если вы хотите продвинуться в PowerShell, вы можете:

$Latest = (Get-ChildItem -File -Path $Env:USERPROFILE\Desktop\filestest -Filter 'program-A.*.exe' |
    Select-Object -Last 1).FullName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...