PowerShell string is of data type String and BaseType as System.Object. String in PowerShell are objects and can use available string methods for string manipulation.
PS C:\> "ShellGeek".GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
PS C:\>
PowerShell string can be defined using single or double quotes and are of System.String type.
In this article, we will discuss strings in PowerShell, get members for strings, and string manipulation using different string methods.
Strings in PowerShell
Strings in PowerShell can be defined using single or double quotes. You can also store the string in the variable. Strings created are System.String data type.
PS C:\> 'ShellGeek'.GetType() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True String System.Object PS C:\> 'ShellGeek'.Length 9 PS C:\> "ShellGeek".GetType() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True String System.Object PS C:\> "ShellGeek".Length 9 PS C:\> $website = "ShellGeek" PS C:\> $website.GetType() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True String System.Object PS C:\> $website.Length 9 PS C:\>
In the above PowerShell script, we have defined strings in PowerShell using different ways like single quotes, double quotes, or storing strings in a variable.
Using the GetType() method, we get the data type and base type for the object. All strings are of type System.String data type.
The Length is string property is used to get the length of a string.
Get String Members in PowerShell
In PowerShell, a string is an object and has members, properties, and methods that can be used to manipulate the string.
You can get all the members of the PowerShell string using the Get-Member cmdlet. It displays the name, type, and description.
"ShellGeek" | Get-Member | Select Name, MemberType
The output of the above PowerShell script gets all the members for the string including methods and property names available for the string.
PS C:\> "ShellGeek" | Get-Member | Select Name, MemberType
Name MemberType
---- ----------
Clone Method
CompareTo Method
Contains Method
CopyTo Method
EndsWith Method
Equals Method
GetEnumerator Method
GetHashCode Method
GetType Method
GetTypeCode Method
IndexOf Method
IndexOfAny Method
Insert Method
IsNormalized Method
LastIndexOf Method
LastIndexOfAny Method
Normalize Method
PadLeft Method
PadRight Method
Remove Method
Replace Method
Split Method
StartsWith Method
Substring Method
ToBoolean Method
ToByte Method
ToChar Method
ToCharArray Method
ToDateTime Method
ToDecimal Method
ToDouble Method
ToInt16 Method
ToInt32 Method
ToInt64 Method
ToLower Method
ToLowerInvariant Method
ToSByte Method
ToSingle Method
ToString Method
ToType Method
ToUInt16 Method
ToUInt32 Method
ToUInt64 Method
ToUpper Method
ToUpperInvariant Method
Trim Method
TrimEnd Method
TrimStart Method
Chars ParameterizedProperty
Length Property
PS C:\>
Concatenation of String
You can concatenate multiple strings in PowerShell to build formatted strings using the plus (+) operator.
PS C:\> $website = "ShellGeek" PS C:\> $category = "PowerShell" PS C:\> $website + " " + $category
In the above PowerShell script, we have defined two strings and stored them in variables. To concatenate strings in PowerShell, we have used the + operator.
The output of the above script for the concatenation of strings is:
ShellGeek PowerShell
Use the Join parameter to Join the String in PowerShell
If you want to join multiple strings in PowerShell, you can use the join operator and specify the string you want to concatenate.
PS C:\> $website = "ShellGeek" PS C:\> $category = "PowerShell" PS C:\> $website,$category -join " - Learn "
In the above PowerShell script, we have defined variables holding string data types. To perform the join operation, used the join operator and specified the string ” – Learn “.
The output for the above script to join the strings in PowerShell is:
ShellGeek - Learn PowerShell
Variable Substitution for String in PowerShell
In PowerShell, you can store strings in the variable. To concatenate the strings in PowerShell, you can specify variables directly in the strings.
You will need to use double quotes around the strings for the concatenation of strings.
PS C:\> $website = "ShellGeek" PS C:\> $category = "PowerShell" PS C:\> "Hello! Welcome to $website - $category website"
In the above PowerShell script, we have defined two strings variables $website and $category.
To perform the concatenation of strings, we have used double quotes around the strings. The double-quoted string allows the variable substitution.
The output of the above script for variable substitution in the double-quoted string is:
Hello! Welcome to ShellGeek - PowerShell website
Format the String in PowerShell
Using the .NET static method Format for string, you can easily format the string in PowerShell. You can also format the string in PowerShell using the -f
# Format string in PowerShell using .NET String Format $website = "ShellGeek" $category = "PowerShell" [string]::Format('Hello! Welcome to, {0} {1}.',$website,$category) # Format string in PowerShell using -f 'Hello! Welcome to, {0} {1}.' -f $website,$category
In the above PowerShell script, we have defined string variables. Using the .NET string method Format, it formats the string.
In the script, the string is parsed for the tokens {0} and {1} and used the values provided.
The output of the above script to format the string using .NET and PowerShell is:
Hello! Welcome to, ShellGeek PowerShell.
Hello! Welcome to, ShellGeek PowerShell.
Split the Strings in PowerShell
You can split the string in PowerShell using the split() method or split operator. You can specify the string or character array to split the string. It returns an array of strings.
$website = "Shell Geek" # Split the string using Split() method $website.Split(" ")
In the above PowerShell script, the $website variable contains the string “Shell Geek”.
To split the string by white space, we have used the Split() operator and specified white space as an input argument to it.
The output of the above script after splitting the string returns the array of strings.
Shell
Geek
You can also use the split operator to split the string. Refer to the following code which uses the split operator and splits the string by whitespace.
$website = "Shell Geek" # Split the string using split operator $website -split " "
The output of the above script after splitting the string by the split operator is:
Shell
Geek
Substring in PowerShell
The substring method in PowerShell takes two arguments as input and returns the part of the string. These input parameters are numeric and separated by a comma.
$website = "Shell Geek" $website.Substring(0,6) $website.Substring(6,4)
In the above PowerShell script, the $website variable contains the string “Shell Geek”.
We have used the substring method that takes two input numeric values and returns the part of the string.
In the following command, the Substring method takes values as 0 and 6 and returns the first 6 characters from the given string.
$website.Substring(0,6)
The output of the above script is:
Shell
In the next command, the Substring method takes values 6 and 4. It skips the first six characters and returns the next 4 characters from the given string.
$website.Substring(6,4)
The output of the above script is:
Geek
Replace() in PowerShell
The Replace() method of string in PowerShell takes two parameters and returns the part of the string.
$website = "Shell Geek" $website.Replace(" ","")
In the above PowerShell script, the $website variable stores the string type value.
We have used Replace() method on the string variable to replace the white space from the given string with empty and returns the string.
The output of the above script after replacing the whitespace in the given string is:
ShellGeek
Conclusion
I hope the above article on strings in PowerShell is helpful to you. There are a number of string methods you can use to manipulate the strings in PowerShell.
Use the Get-Member cmdlet to get the list of all available members ( methods and properties).
You can find more topics about PowerShell Active Directory commands and PowerShell basics on the ShellGeek home page.