Per Batch einen Ordner mit der höchsten versionsnr aussuchen
Hi Alle zusammen,
ich habe hier schon eine Runde unter den Batchfragen rumgeklickt um zu sehen ob sich schon jemand mit dem Problem beschäftigt hat, bin aber leider nicht wirklich fündig geworden.
So, jetzt zur Erklärung des leider sehr kryptisch geratenen Titels und meines Problems:
Ich habe ein Programm das nach einem Update immer wieder einen neuen Ordner mit der neuen Versionsnummer des Programms erstellt, und dabei den Ordner mit der vorletzten Nummer löscht.
Es liegen also zwei Ordner mit mit Nummern in etwa wie: 1.6.0.4 und 1.6.0.0 da rum
In dem aktuellsten Ordner muß nach dem Update händisch immer auf eine Datei zugegriffen werden um diese um eine Zeile zu erweitern, sowie noch eine weitere Datei in den Ordner reinkopiert werden.
Kein großes Ding und eigentlich nur Bequemlichkeit dafür eine Batch zu nehmen, aber ich habe gerade Zeit auf der Arbeit und wollte mich da mal etwas einlesen (mit sehr sehr mäßigem Erfolg)
Meine Frage ist: wie bekomme ich es hin das der Ordner mit der höheren Nummer (also der neuere) selektiert wird ohne das ich das von Hand auswählen muß?
Schon mal Danke für's lesen und eventuelle Antworten
ich habe hier schon eine Runde unter den Batchfragen rumgeklickt um zu sehen ob sich schon jemand mit dem Problem beschäftigt hat, bin aber leider nicht wirklich fündig geworden.
So, jetzt zur Erklärung des leider sehr kryptisch geratenen Titels und meines Problems:
Ich habe ein Programm das nach einem Update immer wieder einen neuen Ordner mit der neuen Versionsnummer des Programms erstellt, und dabei den Ordner mit der vorletzten Nummer löscht.
Es liegen also zwei Ordner mit mit Nummern in etwa wie: 1.6.0.4 und 1.6.0.0 da rum
In dem aktuellsten Ordner muß nach dem Update händisch immer auf eine Datei zugegriffen werden um diese um eine Zeile zu erweitern, sowie noch eine weitere Datei in den Ordner reinkopiert werden.
Kein großes Ding und eigentlich nur Bequemlichkeit dafür eine Batch zu nehmen, aber ich habe gerade Zeit auf der Arbeit und wollte mich da mal etwas einlesen (mit sehr sehr mäßigem Erfolg)
Meine Frage ist: wie bekomme ich es hin das der Ordner mit der höheren Nummer (also der neuere) selektiert wird ohne das ich das von Hand auswählen muß?
Schon mal Danke für's lesen und eventuelle Antworten
Please also mark the comments that contributed to the solution of the article
Content-Key: 327700
Url: https://administrator.de/contentid/327700
Printed on: May 10, 2024 at 22:05 o'clock
2 Comments
Latest comment
z.B. so
oder
Gruß mik
@echo off & setlocal enabledelayedexpansion
set "folder=D:\Versionsordner"
set NUM=0
for /D %%a in ("%folder%\*") DO (
set f=%%~nxa &set /a f=!f:.=!
if !f! GTR !NUM! (
set NUM=!f!
set LAST=%%a
)
)
echo %LAST%
@echo off
set "folder=D:\Versionsordner"
for /f %%a in ('powershell -Executionpolicy ByPass -c "gci '%folder%' -Dir | sort {[int]$_.Name.replace('.','')} -EA SilentlyContinue -Descending | select -First 1 -Expand FullName"') do set "LAST=%%a"
echo %LAST%