zaibon
Goto Top

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

Content-Key: 327700

Url: https://administrator.de/contentid/327700

Printed on: May 10, 2024 at 22:05 o'clock

Mitglied: 131381
Solution 131381 Jan 27, 2017 updated at 12:36:20 (UTC)
Goto Top
z.B. so
@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%
oder
@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%
Gruß mik
Member: zaibon
zaibon Jan 27, 2017 at 12:36:14 (UTC)
Goto Top
Argh jetzt hab ich mich verklickt, hoffen wir mal dass das auch zur Lösung beiträgt. xD

Aber auf jeden Fall schon mal tausend Dank für die superschnelle Antwort.
Werd jetzt mal den Rest drumrum basteln und schauen was da so draus wird.

Merci beaucoup