Difference between revisions of "Powershell"

From Richard's Wiki
Jump to: navigation, search
Line 1: Line 1:
* Recursive delete of files:
+
===== 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:
+
===== 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
			}
		}
	}
}