- <#
- .SYNOPSIS
- This script re-implements an MSDN Sample showing the
- use of the NumberFormatInfo class to nicely format things
- in this case, currency.
- .DESCRIPTION
- This script iterates through the Windows cultures and
- displays those whose 2-letter ISO code is 'en' and
- displays how Windows formats currency in that culture.
- .NOTES
- File Name : Show-CurrencyFormatting.ps1
- Author : Thomas Lee - tfl@psp.co.uk
- Requires : PowerShell Version 2.0
- .LINK
- This script posted to:
- http://www.pshscripts.blogspot.com
- MSDN sample posted to:
- http://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.aspx
- .EXAMPLE
- Psh > .\Show-CurrencyFormatting.ps1
- The currency symbol for 'English (United States)' is '$'
- The currency symbol for 'English (United Kingdom)' is '£'
- The currency symbol for 'English (Australia)' is '$'
- The currency symbol for 'English (Canada)' is '$'
- The currency symbol for 'English (New Zealand)' is '$'
- The currency symbol for 'English (Ireland)' is '€'
- The currency symbol for 'English (South Africa)' is 'R'
- The currency symbol for 'English (Jamaica)' is 'J$'
- The currency symbol for 'English (Caribbean)' is '$'
- The currency symbol for 'English (Belize)' is 'BZ$'
- The currency symbol for 'English (Trinidad and Tobago)' is 'TT$'
- The currency symbol for 'English (Zimbabwe)' is 'Z$'
- The currency symbol for 'English (Republic of the Philippines)' is 'Php'
- The currency symbol for 'English (Singapore)' is '$'
- The currency symbol for 'English (Malaysia)' is 'RM'
- The currency symbol for 'English (India)' is 'Rs.'
- #>
- # Loop through all the specific cultures known to the CLR.
- foreach ($ci in [System.Globalization.CultureInfo]::GetCultures([System.Globalization.CultureTypes]::SpecificCultures))
- {
- # Only show the currency symbols for cultures that speak English.
- if ($ci.TwoLetterISOLanguageName -eq "en") {
- # Display the culture name and currency symbol.
- $nfi = $ci.NumberFormat
- "The currency symbol for '{0}' is '{1}'" -f $ci.DisplayName, $nfi.CurrencySymbol
- }
- }
This blog contains PowerShell scripts, more PowerShell scripts and still more PowerShell scripts. Occasionally you may see some organisational posts.
Monday, 31 October 2011
Show-CurrencyFormatting.ps1
Show-CalendarAlgorithm.ps1
- <#
- .SYNOPSIS
- This script re-implements an MSDN Sample showing the
- CalendarAlgorithmType enumeration.
- .DESCRIPTION
- This script creates there calendars and displays
- algorithm type,
- .NOTES
- File Name : Show-CalendarAlgorithm.ps1
- Author : Thomas Lee - tfl@psp.co.uk
- Requires : PowerShell Version 2.0
- .LINK
- This script posted to:
- http://www.pshscripts.blogspot.com
- MSDN sample posted to:
- http://msdn.microsoft.com/en-us/library/system.globalization.calendaralgorithmtype.aspx
- .EXAMPLE
- #>
- # Helper function
- Function Display{
- Param ([System.Globalization.Calendar] $c)
- $name = $c.ToString().PadRight(50, '.')
- "{0} {1}" -f $name, $c.AlgorithmType
- }
- ## Start of script
- # Create three new calendars
- $grCal = new-object System.Globalization.GregorianCalendar
- $hiCal = new-object System.Globalization.HijriCalendar
- $jaCal = new-object System.Globalization.JapaneseLunisolarCalendar
- # Display them
- Display($grCal);
- Display($hiCal);
- Display($jaCal);
- [enum]::GetNames([System.Globalization.CalendarAlgorithmType])
Show-CurrencyGroupSize
- <#
- .SYNOPSIS
- This script reimplements a code sample from MSDN in PowerShell.
- This sample formats and display currency using standard and
- different currency groupings.
- .DESCRIPTION
- This script displays a currency using standard, then two
- custom CurrencyGroupSizes.
- .NOTES
- File Name : Show-CurrencyGroupSize.ps1
- Author : Thomas Lee - tfl@psp.co.uk
- Requires : PowerShell Version 2.0
- .LINK
- This script posted to:
- http://www.pshscripts.blogspot.com
- MSDN sample posted tot:
- http://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.currencygroupsizes.aspx
- .EXAMPLE
- PSH:> .\Show-CurrencyGroupSize.ps1
- Default numeric format string "C"
- $123,456,789,012,345.00
- Display with array = 2,3,4
- $12,3456,7890,123,45.00
- Display with array = 2,3,0
- $1234567890,123,45.00
- #>
- # Get a NumberFormatInfo associated with the en-US culture.
- $fi = new-object System.Globalization.CultureInfo "en-US", false
- $nfi = $fi.NumberFormat
- # Display a value with the default separator (".")
- "Default numeric format string `"C`""
- [Int64] $myInt = 123456789012345
- $myInt.ToString( "C", $nfi )
- # Display the same value with different groupings.
- [int[]] $mySizes1 = (2,3,4)
- $mySizes = 2,3,0
- "";"Display with array = 2,3,4"
- $nfi.CurrencyGroupSizes = $mySizes1
- $myInt.ToString( "C", $nfi )
- "";"Display with array = 2,3,0"
- $nfi.CurrencyGroupSizes = $mySizes2
- $myInt.ToString( "C", $nfi )
Show-StandardNFS-1.ps1
- <#
- .SYNOPSIS
- This script shows the first two samples on this MSDN Page,
- convered to PowerShell
- .DESCRIPTION
- This script displays two lines of text using PowerShell
- and .NET formatting information
- .NOTES
- File Name : Show-StandardNFS-1.ps1
- Author : Thomas Lee - tfl@psp.co.uk
- Requires : PowerShell Version 2.0
- .LINK
- This script posted to:
- http://www.pshscripts.blogspot.com
- MSDN sample posted tot:
- http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx
- .EXAMPLE
- [Cookham8:C:\foo]> .\Show-StandardNFS.ps1
- $123.46
- Your account balance is $123.46.
- #>
- # Show formatting a number as currency
- $value = 123.456
- $value.ToString("C2")
- # Show the -f operator with currency formatting
- $value = 123.456
- "Your account balance is {0:C2}." -f $value
Labels:
code,
powershell,
PowerShell scripts,
ToString()
Tuesday, 11 October 2011
Get-OSInstallDate.ps1
- <#
- .SYNOPSIS
- This script gets/displays the Sysgtem Uptime after
- converting it from WEBM time/date format
- .DESCRIPTION
- This script creates an instance of a SWbemDateTime object,
- gets the OS install date and converts the date to a more
- useful format.
- .NOTES
- File Name : Get-OSInstallDate.ps1
- Author : Thomas Lee - tfl@psp.co.uk
- Requires : PowerShell Version 2.0
- .LINK
- This script posted to:
- http://www.pshscripts.blogspot.com
- MSDN sample posted to:
- http://msdn.microsoft.com/en-us/library/aa393687%28VS.85%29.aspx
- .EXAMPLE
- Psh [C:\foo]> .\Get-OsInstallDate.ps1
- This OS was installed in the year 2008
- Full installation date (VT_DATE format) is 4/9/2008 8:17:23 PM
- Full installation date (FILETIME format) is 128522458430000000
- #>
- # Create swbemdatetime object
- $datetime = New-Object -ComObject WbemScripting.SWbemDateTime
- # Get OS installation time and assign to datetime object
- $os = Get-WmiObject -Class Win32_OperatingSystem
- $dateTime.Value = $os.InstallDate
- # Now display the time
- "This OS was installed in the year {0}" -f $dateTime.Year
- "Full installation date (VT_DATE format) is {0}" -f $dateTime.GetVarDate()
- "Full installation date (FILETIME format) is {0}" -f $dateTime.GetFileTime()
- ##
Labels:
powershell,
PowerShell scripts,
SWbemDateTime,
wmi
Friday, 7 October 2011
Register-Event1.ps1
- <#
- .SYNOPSIS
- This script registers for a WMI event
- .DESCRIPTION
- This script used PowerShell to register for then display
- an event. This script is a re-write on an MSDN Sample.
- .NOTES
- File Name : Register-Event1.ps1
- Author : Thomas Lee - tfl@psp.co.uk
- Requires : PowerShell Version 2.0
- .LINK
- This script posted to:
- http://www.pshscripts.blogspot.com
- MSDN sample posted tot:
- http://msdn.microsoft.com/en-us/library/aa393013%28VS.85%29.aspx
- .EXAMPLE
- [PSH] C:\FOO> Register-Event1.ps1
- Waiting for events
- Log Event Occured
- EVENT MESSAGE
- A logon was attempted using explicit credentials.
- Subject:
- Security ID: S-1-5-21-2824006062-479960714-4144511058-1105
- Account Name: tfl
- ... -> Reminder snipped for brevity
- #>
- # Define event Query
- $query = "SELECT * FROM __InstanceCreationEvent
- WHERE TargetInstance ISA 'Win32_NTLogEvent' "
- # Register for event - also specify an action that
- # displays the log event when the event fires.
- Register-WmiEvent -Source Demo1 -Query $query -Action {
- Write-Host "Log Event occured"
- $global:myevent = $event
- Write-Host "EVENT MESSAGE"
- Write-Host $event.SourceEventArgs.NewEvent.TargetInstance.Message}
- # So wait
- "Waiting for events"
Labels:
powershell,
PowerShell scripts,
wmi
Subscribe to:
Posts (Atom)