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
Wieso funktionier bei mir [System.Windows.MessageBox]::Show($DropDown)::OK in PowerShell nicht??

Hallo,
wo liegt die Fehler wieso funktioniert der [System.Windows.MessageBox]::Show($DropDown)::OK Befehl in meiner Code nicht??

[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")

  [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")

  

  $Form = [System.Windows.Forms.MessageBox]::OK

   

  $Form.width = 300

  $Form.height = 150

  $Form.Text = ”DropDown”

  

  $DropDown = [System.Windows.MessageBox]::Show($DropDown)::OK

  $DropDown.Location = new-object System.Drawing.Size(100,10)

  $DropDown.Size = new-object System.Drawing.Size(130,30)

  ForEach ($Item in $DropDownArray) {

   [void] $DropDown.Items.Add($Item)

  }

  $Form.Controls.Add($DropDown)

  $DropDownLabel = [System.Windows.MessageBox]::Show($DropDown)::OK

  $DropDownLabel.Location = new-object System.Drawing.Size(10,10) 

  $DropDownLabel.size = new-object System.Drawing.Size(100,40) 

  $DropDownLabel.Text = "Suchen Sie die Pfad aus"

  $Form.Controls.Add($DropDownLabel)

    $Form.Controls.Add($DropDown)

  $DropDownLabel = [System.Windows.MessageBox]::Show($Form)::OK

  $DropDownLabel.Location = new-object System.Drawing.Size(10,10) 

  $DropDownLabel.size = new-object System.Drawing.Size(100,40) 

  $DropDownLabel.Text = "Zeit"

  $Form.Controls.Add($DropDownLabel)

  $Button = [System.Windows.MessageBox]::Show($Button)::OK

  $Button.Location = new-object System.Drawing.Size(100,50)

  $Button.Size = new-object System.Drawing.Size(100,20)

  $Button.Text = "Weiter"

  $Button.Add_Click({Return-DropDown})

  $form.Controls.Add($Button)

$result=[System.Windows.MessageBox]::Show($Form,$Button,$DropDownLabel,$DropDown,[System.Windows.MessageBoxResult]::OK)

   

  return $script:choice

Code, PowerShell
PowerShell mit mehreren Checkboxen?

Wenn ich die zweite CheckBox anhake wird der Befehl nicht ausgeführt bei der ersten wird er aber ausgeführt. Wie muss ich vorgehen dass beide CheckBoxen funktionieren.

Mein Script sieht so aus

function Test{

 [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")

 [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")

 # Set the size of your form

 $Form = New-Object System.Windows.Forms.Form

 $Form.width = 435

 $Form.height = 200

 $Form.Text = ”Test”

 # Set the font of the text to be used within the form

 $Font = New-Object System.Drawing.Font("Times New Roman",12)

 $Form.Font = $Font

function Ausführen{

#Paint Ausführen

if($paintCheckBox.checked -eq $true) {mspaint.exe}

#NotePad Ausführen

if($DownloadsCheckBox.checked -eq $true) {Nodepad.exe}

}

 #Add an Ausführen button

 $AusführenButton = new-object System.Windows.Forms.Button

 $AusführenButton.Location = new-object System.Drawing.Size(30,30)

 $AusführenButton.Size = new-object System.Drawing.Size(100,40)

 $AusführenButton.Text = "Ausführen"

 $AusführenButton.Add_Click({(Ausführen)})

 $form.Controls.Add($AusführenButton)

 #Add a Exit button

 $ExitButton = new-object System.Windows.Forms.Button

 $ExitButton.Location = new-object System.Drawing.Size(160,30)

 $ExitButton.Size = new-object System.Drawing.Size(100,40)

 $ExitButton.Text = "Exit"

 $ExitButton.Add_Click({$Form.Close()})

 $form.Controls.Add($ExitButton)

 #Add a CheckBox  

 $paintCheckBox=New-Object System.Windows.Forms.CheckBox

 $paintCheckBox.Name="Paint"

 $paintCheckBox.Text="Paint"

 $paintCheckBox.TabIndex=0

 $paintCheckBox.Location=New-Object System.Drawing.Point(30,80)

 $paintCheckBox.Size = new-object System.Drawing.Size(200,40)

 $NotePadCheckBox=New-Object System.Windows.Forms.CheckBox

 $NotePadCheckBox.Name="NotePad"

 $NotePadCheckBox.Text="NotePad"

 $NotePadCheckBox.TabIndex=0

 $NotePadCheckBox.Location=New-Object System.Drawing.Point(30,110)

 $NotePadCheckBox.Size = new-object System.Drawing.Size(200,40)

 $paintCheckBox,$NotePadCheckBox | foreach {$Form.Controls.Add($_)}

  

 # Activate the form

 $Form.Add_Shown({$Form.Activate()})

 [void] $Form.ShowDialog()

}

#Call the function

Test

programmieren, PowerShell
Powershell PromptForChoice?

Hallo.

Ich möchte gerne eine PowershellPromptForChoice haben. Sprich ich will, dass der Benutzer von dem Script eine Wahl hat welches Programm er installieren will. Es sollte drei Optionen geben. Ich habe schon etwas versucht aber es funktioniert nicht. Vielleicht kann mir jemand weiter helfen.

Der jetzige Code:

-------------------------------------------------------------------------------------------------------------------------------------

$title = "Anti-Virus installieren?"

$message = "            "

    $Nod32 = New-Object System.Management.Automation.Host.ChoiceDescription "&AV-Nod32"

        $Endpoint = New-Object System.Management.Automation.Host.ChoiceDescription "&Endpoint"

            $Nein = New-Object System.Management.Automation.Host.ChoiceDescription "&Nein"

                $options = [System.Management.Automation.Host.ChoiceDescription[]]($Nod32,$Endpoint, $Nein)

$result = $Host.ui.PromptForChoice($title, $message, $options, 0) 

switch ($result)

    {

        0 {"Nod32..."

           Start-Process X:\InstallFiles\nod32.exe   -whatif

          }

        1 {"Endpoint..."

          Start-Process X:\InstallFiles\entpoint.msi    -whatif

          }

        2 {"Nein..."}

          

    }

-------------------------------------------------------------------------------------------------------------------------------------

Computer, Windows, fehlercode, User, PowerShell
Mit Powershell Javascript variabel ansprechen?

Ich möchte von einer Webseite Daten auslesen und diese anschliessend in einem Excel File speichern.

Mein Powershell Code:
$url = Invoke-WebRequest -Uri "https://steamcommunity.com/market/listings/730/Operation%20Breakout%20Weapon%20Case"
$url.RawContent 

Mit diesem Befehl kann ich den ganzen Quellcode der Webseite anzeigen lassen. Jedoch benötige ich nur eine kleine Information, welche sich in einer Javascript Variabel befindet.

Teil des gebrauchten Javascript Codes:
$J(document).ready(function(){			
var line1=[["Jul 02 2014 01: +0",4.314,"70167"],["Jul 03 2014 01: +0",3.364,"44849"],["Jul 04 2014 01: +0",3.961,"25137"],["Jul 05 2014 01: +0",4.012,"1
8923"],["Jul 06 2014 01: +0",4.071,"15788"],["Jul 07 2014 01: +0",4.316,"12800"],["Jul 08 2014 01: +0",4.498,"10284"],["Jul 09 2014 01: +0",3.017,"25336"],
["Jul 10 2014 01: +0",1.994,"35829"],["Jul 11 2014 01: +0",1.672,"35745"],["Jul 12 2014 01: +0",1.814,"26017"],["Jul 13 2014 01: +0",1.894,"20141"],["Jul 1
4 2014 01: +0",1.986,"17805"],["Jul 15 2014 01: +0",2.002,"17473"],["Jul 16 2014 01: +0",1.794,"21039"]];

Mit Powershell will ich die "var line1" Variabel auslesen und dessen Inhalt in einer Excel Datei speichern.

Wäre es möglich mit einem einfachen Command die Javascript Variabel auszulesen, oder ist es ein Problem, da es sich nicht um HTML Klassen handelt?

PC, Computer, Technik, HTML, Webseite, programmieren, JavaScript, PowerShell

Meistgelesene Beiträge zum Thema PowerShell