Difference between revisions of "Powershell"
From Richard's Wiki
Line 1: | Line 1: | ||
− | + | ===== Recursive delete of files ===== | |
get-childitem . -include *scc,bin,obj -recurse | foreach ($_) {remove-item -recurse -force $_.fullname} | get-childitem . -include *scc,bin,obj -recurse | foreach ($_) {remove-item -recurse -force $_.fullname} | ||
− | + | ===== Periodically poll a website and log response times ===== | |
$url="http://xml.weather.yahoo.com/forecastrss?p=10036" | $url="http://xml.weather.yahoo.com/forecastrss?p=10036" | ||
$web = new-object system.net.webclient | $web = new-object system.net.webclient | ||
Line 14: | Line 14: | ||
"" + [DateTime]::Now + ": Duration " + $duration >> $log | "" + [DateTime]::Now + ": Duration " + $duration >> $log | ||
sleep 60 | sleep 60 | ||
+ | } | ||
+ | |||
+ | ===== Parse Enterprise Architect XML Files in a directory ===== | ||
+ | |||
+ | ## An example script that will look at all the xml files | ||
+ | ## in the specified directory, assume they are valid | ||
+ | ## Enterprise Architect export files, and try to list | ||
+ | ## the names of all the packages in each file | ||
+ | param( | ||
+ | $folderPath = $(throw 'folderPath must be supplied') | ||
+ | ) | ||
+ | $xmlFiles = (resolve-path "$folderPath\*.xml") | ||
+ | foreach ($xmlFile in $xmlFiles) { | ||
+ | $xmlFile = $xmlFile.Path | ||
+ | $xmlDoc = new-object system.xml.xmldocument | ||
+ | $xmlDoc.Load($xmlFile); | ||
+ | $nsMgr = New-Object system.xml.XmlNamespaceManager $xmlDoc.get_NameTable() | ||
+ | $nsmgr.AddNamespace("UML", "omg.org/UML1.3") | ||
+ | if ($xmlDoc.XMI) { | ||
+ | $packages = $xmlDoc.XMI.SelectNodes("//UML:Package", $nsMgr) | ||
+ | if ($packages.Count -gt 0) { | ||
+ | Write-Host $xmlFile ":" | ||
+ | foreach ($package in $packages) { | ||
+ | Write-Host $package.name | ||
+ | } | ||
+ | } | ||
+ | } | ||
} | } |
Revision as of 08:45, 7 August 2009
Recursive delete of files
get-childitem . -include *scc,bin,obj -recurse | foreach ($_) {remove-item -recurse -force $_.fullname}
Periodically poll a website and log response times
$url="http://xml.weather.yahoo.com/forecastrss?p=10036" $web = new-object system.net.webclient $datetime = new-object system.datetime $log = "log.txt" while (1) { $start = [DateTime]::Now $zz = $web.DownloadString($url) $end = [DateTime]::Now $duration = $end - $start "" + [DateTime]::Now + ": Duration " + $duration >> $log sleep 60 }
Parse Enterprise Architect XML Files in a directory
## An example script that will look at all the xml files ## in the specified directory, assume they are valid ## Enterprise Architect export files, and try to list ## the names of all the packages in each file param( $folderPath = $(throw 'folderPath must be supplied') ) $xmlFiles = (resolve-path "$folderPath\*.xml") foreach ($xmlFile in $xmlFiles) { $xmlFile = $xmlFile.Path $xmlDoc = new-object system.xml.xmldocument $xmlDoc.Load($xmlFile); $nsMgr = New-Object system.xml.XmlNamespaceManager $xmlDoc.get_NameTable() $nsmgr.AddNamespace("UML", "omg.org/UML1.3") if ($xmlDoc.XMI) { $packages = $xmlDoc.XMI.SelectNodes("//UML:Package", $nsMgr) if ($packages.Count -gt 0) { Write-Host $xmlFile ":" foreach ($package in $packages) { Write-Host $package.name } } } }