Archive for the ‘Programmierung’ Category.
2010-01-02, 10:14
In Version 2 enthält die Powershell ein Commandlet zum einfachen Versenden von E-Mails. Hier ein Beispiel:
send-mailmessage -From admin@localhost.xyz
-To user@someotherdomain.com
-Subject "Hallo Welt"
-Body "Testmail von Uwe"
-Smtpserver smtpserver.somedomain.com |
send-mailmessage -From admin@localhost.xyz
-To user@someotherdomain.com
-Subject "Hallo Welt"
-Body "Testmail von Uwe"
-Smtpserver smtpserver.somedomain.com
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
Schlagwörter:
Powershell Category:
Powershell |
Kommentare deaktiviert für E-Mails versenden mit Powershell 2
2010-01-01, 18:19
Wenn man nicht das gesamte Muster ‚hart‘ ersetzen möchte, sondern in Abhängigkeit des gematchten Strings, dann bieten sich Gruppen an.
In folgendem Beispiel suche ich alle <h1>-Überschriften und ersetze diese durch <h2>-Überschriften. Dabei wird nicht die Powershell-eigene
replace
-Funktion benutzt, sondern die entsprechende .Net Klasse. Das, was zwischen den beiden Tags steht, ist über $1
zugänglich.
$string = "<h1>Hallo</h1>"
$pattern = "<h1>(\w+)</h1>"
[regex]::Replace($string,$pattern,'<h2>$1</h2>') |
$string = "<h1>Hallo</h1>"
$pattern = "<h1>(\w+)</h1>"
[regex]::Replace($string,$pattern,'<h2>$1</h2>')
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
Schlagwörter:
Powershell Category:
Powershell |
Kommentare deaktiviert für Reguläre Ausdrücke mit Powershell: Untergruppen matchen
2010-01-01, 18:04
Für das Ersetzen von Strings stellt Powershell den -replace
Operator bereit, hier ein Beispiel. Ersetzt werden alle „berg“ Strings, wenn das Wort darauf endet, in „heim“.
$orte = "Berlin", "Bergheim", "Hameln", "Hamburg", `
"Köln", "Schönberg"
$pattern = "berg$"
# Der match findet Bergheim und Schöneberg
$orte -replace $pattern,"heim" |
$orte = "Berlin", "Bergheim", "Hameln", "Hamburg", `
"Köln", "Schönberg"
$pattern = "berg$"
# Der match findet Bergheim und Schöneberg
$orte -replace $pattern,"heim"
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
Schlagwörter:
Powershell Category:
Powershell |
Kommentare deaktiviert für Reguläre Ausdrücke mit Powershell III – Ersetzen
2010-01-01, 11:01
Füllen wir mal ein Feld mit Ortsnamen:
$orte = "Berlin", "Bergheim", "Hameln", "Hamburg", `
"Köln", "Schöneberg"
$pattern = "berg"
# Der match findet Bergheim und Schöneberg
$orte -match $pattern
$matches
# Dieser match findet nur Bergheim, da wir per
# ^ festlegen, dass das "Berg" am
# Anfang stehen muss
$pattern = "^berg"
$orte -match $pattern
$matches
# Dieser match findet nur Schöneberg, da wir
# per $ festlegen, dass das "Berg" am Ende
# stehen muss
$pattern = "berg$"
$orte -match $pattern
$matches
# Dieser match findet nur Hamburg und
# Schöneberg, da wir per (burg|berg)$
# alle Städte finden, die auf "burg" ODER
# "berg" enden
$pattern = "(berg|burg)$"
$orte -match $pattern
$matches |
$orte = "Berlin", "Bergheim", "Hameln", "Hamburg", `
"Köln", "Schöneberg"
$pattern = "berg"
# Der match findet Bergheim und Schöneberg
$orte -match $pattern
$matches
# Dieser match findet nur Bergheim, da wir per
# ^ festlegen, dass das "Berg" am
# Anfang stehen muss
$pattern = "^berg"
$orte -match $pattern
$matches
# Dieser match findet nur Schöneberg, da wir
# per $ festlegen, dass das "Berg" am Ende
# stehen muss
$pattern = "berg$"
$orte -match $pattern
$matches
# Dieser match findet nur Hamburg und
# Schöneberg, da wir per (burg|berg)$
# alle Städte finden, die auf "burg" ODER
# "berg" enden
$pattern = "(berg|burg)$"
$orte -match $pattern
$matches
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
Schlagwörter:
Powershell Category:
Powershell |
Kommentare deaktiviert für Reguläre Ausdrücke mit Powershell II – am Anfang und Ende eines Strings suchen
2010-01-01, 10:55
Reguläre Ausdrücke bilden ein sehr mächtiges Werkzeug für das Suchen und Ersetzen von Mustern in Zeichenketten. Powershell bietet mit dem -match
Modifier ein entsprechendes Werkzeug, um reguläre Ausdrücke in der Powershell zu nutzen:
#Definition einiger Strings
$string = "Hallo Welt"
$pattern = "hallo"
# im $matches Array speichert Powershell die gefundenen Textstücke
# hier setzen
$matches = ""
$string -match $pattern
$matches
# -cmatch achtet auf Groß- und Kleinschreibung, findet also 'hallo' nicht
$string -cmatch $pattern
# -imatch ignoriert Groß- und Kleinschreibung
$string -cmatch $pattern |
#Definition einiger Strings
$string = "Hallo Welt"
$pattern = "hallo"
# im $matches Array speichert Powershell die gefundenen Textstücke
# hier setzen
$matches = ""
$string -match $pattern
$matches
# -cmatch achtet auf Groß- und Kleinschreibung, findet also 'hallo' nicht
$string -cmatch $pattern
# -imatch ignoriert Groß- und Kleinschreibung
$string -cmatch $pattern
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
Schlagwörter:
Powershell Category:
Powershell |
Kommentare deaktiviert für Reguläre Ausdrücke mit Powershell I
2010-01-01, 10:31
Die folgenden Zeilen, gefunden auf http://www.msexchangefaq.de/code/powershell.htm, zaubern eine Messagebox auf den Bildschirm:
$wshshell = new-object -comobject wscript.shell
$Answer = $wshshell.popup("Löschen bestätigen!",0,"Wollen Sie wirklich löschen?",4)
Write-Host $Answer |
$wshshell = new-object -comobject wscript.shell
$Answer = $wshshell.popup("Löschen bestätigen!",0,"Wollen Sie wirklich löschen?",4)
Write-Host $Answer
Auf der Seite gibt es noch eine Reihe interessanter Informationen zur Powershell.
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
Schlagwörter:
Powershell Category:
Powershell |
Kommentare deaktiviert für Messagebox mit Powershell
2009-12-20, 20:09
Über COM lässt sich auch die Windows-eigene Spachbibliothek ansteuern:
$s = New-Object -com "SAPI.spvoice"
$s.speak("Hallo Powershell") |
$s = New-Object -com "SAPI.spvoice"
$s.speak("Hallo Powershell")
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
Schlagwörter:
Powershell Category:
Powershell |
Kommentare deaktiviert für Mit Powershell die Sprachausgabebibliothek ansteuern
2009-12-20, 14:59
Hintergrund- und Vordergrundfarbe und andere Eigenschaften der Powershell lassen sich auch leicht anpassen:
$a = (Get-Host).UI.RawUI
$a.BackgroundColor = "black"
$a.ForegroundColor = "yellow" |
$a = (Get-Host).UI.RawUI
$a.BackgroundColor = "black"
$a.ForegroundColor = "yellow"
Sollen die Änderungen dauerhaft gespeichert werden, kann man sie in der Profil-Datei eintragen, deren Ort man über die Variable $profile
ermitteln kann.
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
Schlagwörter:
Powershell Category:
Powershell |
Kommentare deaktiviert für Powershell User Interface anpassen
2009-12-20, 11:00
Was mit Word geht, geht auch mit Excel. Hier ein Beispiel, das ich im Netz (http://www.vistax64.com/powershell/173327-make-excel-chart-powershell.html) gefunden habe und etwas angepasst habe. Schade, dass die Sprachausgabe nur englisch ist:
# http://www.vistax64.com/powershell/173327-make-excel-chart-powershell.html
$excel = New-object -comobject Excel.Application
$excel.Visible = $true
$excel.DisplayAlerts = $false
$workbook = $excel.Workbooks.Add()
$sheet = $workbook.Worksheets.Item(1)
$sheet.Name = 'Hallo Welt'
foreach ($i in 1..25){
$sheet.cells.item($i,1) = $i
$sheet.cells.item($i,2) = $i*2
}
# Bar Chart
# Datenherkunft
$range = $sheet.range('a1:a25')
# Chart-Variable anlegen
$chart = $sheet.shapes.addChart().chart
# Typ zuweisen (Bar Chart)
$chart.chartType = 58
# Daten zuweisen
$chart.setSourceData($range)
1..48 | % {$chart.chartStyle = $_; $excel.speech.speak("Style $_"); sleep 2} |
# http://www.vistax64.com/powershell/173327-make-excel-chart-powershell.html
$excel = New-object -comobject Excel.Application
$excel.Visible = $true
$excel.DisplayAlerts = $false
$workbook = $excel.Workbooks.Add()
$sheet = $workbook.Worksheets.Item(1)
$sheet.Name = 'Hallo Welt'
foreach ($i in 1..25){
$sheet.cells.item($i,1) = $i
$sheet.cells.item($i,2) = $i*2
}
# Bar Chart
# Datenherkunft
$range = $sheet.range('a1:a25')
# Chart-Variable anlegen
$chart = $sheet.shapes.addChart().chart
# Typ zuweisen (Bar Chart)
$chart.chartType = 58
# Daten zuweisen
$chart.setSourceData($range)
1..48 | % {$chart.chartStyle = $_; $excel.speech.speak("Style $_"); sleep 2}
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
2009-12-20, 10:57
Durch die integrierte COM-Anbindung ist es einfach, Applikationen wie Word und Excel über die Powershell fernzusteuern. Ausgehend von dem Beispiel auf http://command-line-programming.suite101.com/article.cfm/how_to_create_a_word_document_with_powershell, das ich etwas anpassen musste, hier ein ‚Minimalbeispiel‘:
$oWord = New-Object -Com Word.Application
$oWord.Visible = $true
$oMissing = [System.Reflection.Missing]::Value
$oDoc = $oWord.Documents.Add($oMissing, $oMissing, $oMissing, $oMissing)
# $odoc | get-Member save* |Select-Object definition| format-list
$oPara1 = $oDoc.Paragraphs.Add($oMissing)
$oPara1.Range.Style = "Überschrift 1"
$oPara1.Range.Text = "Hallo, ich bin etwas Text"
$oPara1.Range.InsertParagraphAfter()
$oPara1.Range.Text = "Hallo, ich bin etwas Text"
$oPara1.Range.InsertParagraphAfter()
$oPara2 = $oDoc.Paragraphs.Add($oMissing)
$oPara2.Range.Text = "Hier der zweite Absatz"
$oPara2.Range.InsertParagraphAfter()
$filename = "C:\MeinDokument.doc"
$oDoc.SaveAs([ref]$filename,[ref]$oMissing,
[ref]$oMissing,[ref]$oMissing, [ref]$oMissing,
[ref]$oMissing,[ref]$oMissing,[ref]$oMissing,
[ref]$oMissing,[ref]$oMissing, [ref]$oMissing,
[ref]$oMissing,[ref]$oMissing,[ref]$oMissing,
[ref]$oMissing)
$oDoc.Close()
$oWord.Quit() |
$oWord = New-Object -Com Word.Application
$oWord.Visible = $true
$oMissing = [System.Reflection.Missing]::Value
$oDoc = $oWord.Documents.Add($oMissing, $oMissing, $oMissing, $oMissing)
# $odoc | get-Member save* |Select-Object definition| format-list
$oPara1 = $oDoc.Paragraphs.Add($oMissing)
$oPara1.Range.Style = "Überschrift 1"
$oPara1.Range.Text = "Hallo, ich bin etwas Text"
$oPara1.Range.InsertParagraphAfter()
$oPara1.Range.Text = "Hallo, ich bin etwas Text"
$oPara1.Range.InsertParagraphAfter()
$oPara2 = $oDoc.Paragraphs.Add($oMissing)
$oPara2.Range.Text = "Hier der zweite Absatz"
$oPara2.Range.InsertParagraphAfter()
$filename = "C:\MeinDokument.doc"
$oDoc.SaveAs([ref]$filename,[ref]$oMissing,
[ref]$oMissing,[ref]$oMissing, [ref]$oMissing,
[ref]$oMissing,[ref]$oMissing,[ref]$oMissing,
[ref]$oMissing,[ref]$oMissing, [ref]$oMissing,
[ref]$oMissing,[ref]$oMissing,[ref]$oMissing,
[ref]$oMissing)
$oDoc.Close()
$oWord.Quit()
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website