PowerShell – die besten Beiträge

Per Batch Wert aus einem HTML Code auslesen?

Hallo liebe Community!

Ich habe im Forum schon nach Lösungen gesucht, aber leider nur Bruchstücke der Lösung gefunden.

Ich habe schon mehrere Schritte per Batch realisiert, aber der letzte will mir nicht gelingen:

Ich habe ein Programm, welches in verschiedenen Versionen gestartet werden kann, die Version bestimmt sich nach der jeweiligen Datenbank und -version.

Dafür gibt es eine HTML Übersichtsseite die alle Datenbanken mit allen Versionen abbildet. Diese wird automatisch als Textdatei runtergeladen und aktualisiert.

Nun muss ich aus dem HTML Code die Zeile mit der richtigen Datenbank auslesen und anschließend die Version, die weiter hinten steht.

Beispiel

<tr><td class='subtd'>DB1</td><td class='subtd'><nobr><font color=#fc7f2b><img title='Ich bin eine Datenbank' src='logo_ci.svg' width='14' height='14'> VERSIONSNUMMER</font></nobr> <font color=grey title='Letztes Login (Monat.Jahr) auf dieser Datenbank'>XXX</font> </td></tr>

<tr><td class='subtd'>DB2</td><td class='subtd'><nobr><font color=#fc7f2b><img title='Ich bin eine Datenbank' src='logo_ci.svg' width='14' height='14'> VERSIONSNUMMER</font></nobr> <font color=grey title='Letztes Login (Monat.Jahr) auf dieser Datenbank'>XXX</font> </td></tr>

HINWEIS die Versionsnummer ist immer gleich aufgebaut, aber unterschiedlich lang XX.X.XXX ODER X.XX.XXXX

Ich würde mich riesig über eine Erklärung zur Lösung freuen, weil ich was dazu lernen möchte.

Computer, programmieren, Batch, cmd, PowerShell, Regulärer Ausdruck

Wieso klappt das PowerShell Skript nicht?

Hallo

Ich habe nachfolgendes Skript. Das will irgendwie nicht. Ich möchte ein Netzlaufwerk mappen, dass auch nach dem Neustarten wieder hier ist.

Es muss irgendwo einen Fehler sein, der ich einfach nicht sehe.

Danke für die Hilfe im Voraus!

<#

Eventuell muss vor der Ausführung die PowerShell Policy umgeändert werden.

PowerShell als Admin starten, untenstehnden Code ausführen und dann das Skript.

Set-ExecutionPolicy unrestricted CurrentUser

#>

#Log
Start-Transcript -Path $HOME\desktop\NLW-MAP-LOG.txt

#Benutzerdaten Abfragen

<#
$user = Read-Host "Benutezrname eingeben"
$pass = Read-Host "Passwort eingeben" |ConvertTo-SecureString -AsPlainText -Force
$cred = New-Object System.Management.Automation.PsCredential($user,$pass)
#>

$cred = Get-Credential -Message "Bitte mit dem Benutzername + Passwort anmelden"

#Ordner

<#
ACHTUNG - FOLGENDE ORDNER HABEN GLEICHE LAUFWERKSBUCHSTABEN:
FabianFSL = W
Workaut = W
Workaut Informatik = Z
Koordination Weiterbildung = Z
Entwicklung Weiterbildung = U
AA Kommunikation = U
AA Z APW = Z

UNBEDINGT VORHER PRÜFEN OB DAS FÜR DEN BENUTZER PASST, ANSONSTEN MANUELL ÜBER New-PSDrive EIN EIGENER BUCHSTABE ZUWEISEN!!
#>

$aajbuchhaltung = 'New-PSDrive -Name "J" -Root "\\192.168.34.96\AA J Buchhaltung" -Persist -PSProvider FileSystem -Credential $cred'
$gdc = 'New-PSDrive -Name "T" -Root "\\192.168.34.96\Gian Duri" -Persist -PSProvider "FileSystem" -Credential $cred'
$glerwweitert = 'New-PSDrive -Name "O" -Root "\\192.168.34.96\GL erweitert" -Persist -PSProvider FileSystem -Credential $cred'
$uhome = 'New-PSDrive -Name "P" -Root "\\192.168.34.96\home" -Persist -PSProvider FileSystem -Credential $cred'
$admin = 'New-PSDrive -Name "R" -Root "\\192.168.34.96\workaut Admin" -Persist -PSProvider FileSystem -Credential $cred'
$it = 'New-PSDrive -Name "Z" -Root "\\192.168.34.96\Workaut ICT" -Persist -PSProvider FileSystem -Credential $cred'

$ExclDrives = ('C', 'D')
Get-PSDrive -PSProvider FileSystem | Where-Object {$ExclDrives -notcontains $_.Name} | Remove-PSDrive

<#

Kopieren und Vorname Nachname gemäss Benutzername erstezen.

Invoke-Expression muss bei jedem da stehen, danach $ordnername durch Name siehe oben erstezen.

elseif ($ced.username -eq 'Vorname Nachname') 
   {
       Invoke-Expression $ordnername
   }
#>

if ($cred.username -eq 'userA')
   {
       Invoke-Expression $gdc
       Invoke-Expression $uhome
       Invoke-Expression $admin
       Invoke-Expression $it
   }

   elseif ($cred.username -eq 'userB') 
   {
       Invoke-Expression $aajbuchhaltung

   }

Stop-Transcript

LG calgia

Computer, Technik, Fehler, programmieren, blind, skript, PowerShell

Meistgelesene Beiträge zum Thema PowerShell