Regular Expressions are a great help in identifying and extracting data from text. Here's an example that finds and extracts a number that ends...
Powershell
Verbose Driver Information
In a previous tip you discovered driverquery.exe to list driver information. This tool sports a /V switch for even more verbose information....
Making Names Unique
To make a list of items or names unique, you could use grouping and then, when a group has more than one item, append a numbered suffix to these...
Home-Made Driver Query Tool
Some months ago we introduced to you the driverquery.exe tool and how to convert its output to PowerShell objects. Here's now an amazing...
Checking Text Ending with Wildcards
In a previous tip you learned how to use the string method EndsWith() to check whether a text ends with certain characters. This method does not...
Checking if a Text Ends with Certain Characters
You can always use the String method EndsWith(). Just make sure you convert the text to lower-case first to avoid case-sensitive comparison. This...
Counting Log Activity Based On Product Install
In a previous tip you learned how to use Group-Object to analyze text-based log files. Here's a refined snippet. It will count on which days...
Counting Log Activity
Did you know that Group-Object can analyze text-based log files for you? Here's sample code that tells you how many log entries on a given day a...
Shrinking Paths
Many file-related .NET Framework methods fail when the overall path length exceeds a certain length. Use low-level methods to convert lengthy paths...
Output to Console AND Variable
To assign results to a variable and at the same time view these results in your console, place the assignment operation into parenthesis: ($result =...
Converting to Signed Using Casting
In a previous tip, you learned how to use the Bitconverter type to convert hexadecimals to signed integers. Here is another way that uses type...
Converting to Signed
If you convert a hex number to a decimal, the result may not be what you want: PS> 0xFFFF 65535 PowerShell converts it to an unsigned number...
Getting Timezones
Here's a low level call that returns all time zones: PS> [System.TimeZoneInfo]::GetSystemTimeZones() Id : Dateline Standard Time DisplayName...
Mapping Printers
To map a network printer to a user profile, here's a powerful low level command: rundll32 printui.dll,PrintUIEntry /in /n...
Fun with Date and Time
Get-Date can extract valuable information from dates. All you need to know is the placeholder for the date part you are after. Then, repeat that...
Counting Work Days
Ever wanted to know how many days you need to work this month? Here's a clever function that lists all the weekdays you want that are in a...
Converting to Hex
Here's a simple way to convert a decimal to a hex representation, for example, if you want to display an error number in standard hexadecimal...
Sending Variables through Environment Variables
Let's assume you want to launch a new PowerShell session from an existing one. To carry over information from the initial session, you can use...
Showing MsgBox
Ever wanted to display a dialog box from PowerShell rather than spitting out console text? Then try this function: function Show-MsgBox { param (...
ASCII Table
Here’s a simple way of creating an ASCII table through type casting: 32..255 | ForEach-Object { 'Code {0} equals character {1}' -f $_, [Char]$_ }...
Pipeline Used Or Not?
Sometimes you may want to know if your function received parameters over the pipeline or direct. Here is a way to find out: function test {...
Using Background Jobs to Speed Up Things
PowerShell is single-threaded and can only do one thing at a time, but by using background jobs, you can spawn multiple PowerShell instances and...
Validate IP Addresses
You can use regular expressions and the –match operator to validate user input. Here’s a loop that keeps asking until the user enters a...
Converting UNIX Time
Surprisingly, when you read some values from the Windows Registry, they do not seem to be in a readable format: $key =...