Teil eines Windows Pfades als Variable nutzen
Ich möchte mittesl Powershell Script eine Citrix Veröffentlichung durch eine neu Version ersetzen. Dazu hab ich bereits ein Script, in dem ich die aktuelle Version und die neue Version per Hand in eine Variable eintrage und das Script tauscht sozusagen die Veröffentlichungen.
Nun möchte ich das ganze gern noch mehr automatisieren. Dazu muss ein neues Script die alkter Version des Programms automatisch erkennen und in die Variable schreiben: Das sollte kein Problem sein, denn die Versionsnummer steht im Ornernamen. Nur wie extrahiere ich diese und packe sie in eine neue Variable?
Ich frage die aktuell installierte Version ab mit
Nun bekomme ich alle möglichen Citrix Parameter angezeigt. Für mich interessant ist "WorkingDirectory"
Ich benötige jetzt lediglich die 5.25.31 in einer Variablen.
Nun möchte ich das ganze gern noch mehr automatisieren. Dazu muss ein neues Script die alkter Version des Programms automatisch erkennen und in die Variable schreiben: Das sollte kein Problem sein, denn die Versionsnummer steht im Ornernamen. Nur wie extrahiere ich diese und packe sie in eine neue Variable?
Ich frage die aktuell installierte Version ab mit
(Get-BrokerApplication -CommandLineExecutable "D:\software\tools\bin\Client_Tool\*")
Nun bekomme ich alle möglichen Citrix Parameter angezeigt. Für mich interessant ist "WorkingDirectory"
WorkingDirectory : D:\software\tools\bin\Client_Tool\Client-5.25.31-x64\bin
Ich benötige jetzt lediglich die 5.25.31 in einer Variablen.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 3406071827
Url: https://administrator.de/contentid/3406071827
Ausgedruckt am: 25.11.2024 um 06:11 Uhr
9 Kommentare
Neuester Kommentar
[version]$version = [regex]::match((Get-BrokerApplication -CommandLineExecutable "D:\software\tools\bin\Client_Tool\*").WorkingDirectory,'\d+\.\d+\.\d+').Value
[version]$version = ((Get-BrokerApplication -CommandLineExecutable "D:\software\tools\bin\Client_Tool\*").WorkingDirectory -split '-')[1]
&".\Apptausch_$version.ps1" $parameter1 $parameter2
start-process Powershell -Argumentlist "-file `".\Apptausch_$version.ps1`" $parameter1 $parameter2"
Den Regex so anpassen
Dann kann die Version 2stellig 3stellig oder 4stellig sein, ...
RTFM
https://tio.run/##K8gvTy0qzkjNyfn/X91Qz0hdB0TqGcNoPRN1hRoF1WouBSCILkpNT6 ...
\d+\.\d+(\.\d+)?(\.\d+)?
RTFM
https://tio.run/##K8gvTy0qzkjNyfn/X91Qz0hdB0TqGcNoPRN1hRoF1WouBSCILkpNT6 ...
Zitat von @MarciMarc85:
funktioniert nur so, ansonsten wird der Pfad eine ebene höher abgefragt
funktioniert nur so, ansonsten wird der Pfad eine ebene höher abgefragt
\d+\.\d+\.\d+(\.\d+)?(\.\d+)?
Wir kennen ja deine Ordnerstruktur hier nich und was da sonst noch steht..., siehe Demo works as designed 😉
Und RTFM für den Rest 🐟
Ich würde mich je eher auf Dateiversionen selbst verlassen als irgendwelche Pfade abzuparsen. Versionsinfos bekommst du ganz einfach mit Get-Item aus Dateien.