Some PowerShell Functionality
coding powershell
Just developed some scripts to assist blogging on my BlogSite. To do so I did some “Monkeys on a Typewriter Coding” using PowerShell. This site is a custom Jekyll-Markdown site. I wanted a couple of scripts to generate a new blog post using metadata obtained from command line parameters and a menu. I could have coded them in Jekyll but chose to do in it in PowerShell.
I have discussed the functionality of these scripts on another post here: This blog site construction-Latest. It has links to the code that will be reused here. On this page I want to focus upon the PowerShell functionality gleamed from searching the internet. The code has references to where hints or solutions to the functionality was found, much like a “Dear Diary”.
No. | Script & Link | Description |
---|---|---|
1 | set-path.ps1 | Sets the PowerShell prompt path to include the location of these scripts |
2 | jekyll-clean.ps1 | Clean built site as well as some custom generated pages to do with categories and tags |
3 | new-post.ps1 | Generate a templated new post as Markdown file with FrontMatter from supplied metadata |
4 | new-post-yml.ps1 | Same as previous but uses Categories from sections.yml for Category selection menu |
The following table lists some PowerShell functionality implemented (not in any particular order) in these scripts.
Browse through the scripts 2,3 and 4 (unless otherwise stated) to see how to implement the functionality and to read further:
PowerShell Functionality | Comment |
---|---|
Check if a file exists | e.g. if ( Test-Path $sections ) |
Parameters | N.b. Need to be first in script. |
Mandatory and Default Parameters | See 3,4 |
Install a PowerShell Module (YML in this case) | See 4 |
Check if a PowerShell module has been installed | See 4 |
ConvertFrom YAML | See 4 |
If .. Else | |
For and Foreach Loops | N.b. no Then |
String.Format | |
String.Replace | $string.Replace(‘a’,’b’) |
String Null or Empty test | |
String Concatenation | |
String length | $string.Length |
New Text File | |
Text File Write to and Append | |
Input TextFile to String | See 4 |
Generate menu from a list | See 4 |
Get Menu selection and use to get list item | See 4 |
Split a list of tuples into two singular lists | See 4 |
List length | Use Count property |
Convert string to int and viz | |
Date string formatting | See 3,4 |
Output to command terminal | write-Output ‘string’ |
Comments | Precede line with # |
Present Working Directory Path | $pwd.Path |
Get and Set Environment Variables | See 1 |
Append to Path locally | See 1 |
Throw an error | See 1 |
String split on a character | See 1 |
Delete a folder | See 1 |
Create a folder if it doesn’t exist | See 1 |
Topic | Subtopic | |
Next: > | .NET Core on IoT | Getting started on Win 10 IoT Core |
< Prev: | .NET Core on IoT | Options for the RPi |
This Category Links | ||
Category: | Coding Index: | Coding |
Next: > | PowerShell Code Signing of scripts |