Upload
duc
View
55
Download
0
Embed Size (px)
DESCRIPTION
Kemtis Kunanuraksapong MSIS with Distinction MCTS, MCDST, MCP, A+. CN1266 Network Scripting. Chapter 7: Working on a Pipeline Chapter 9: Bringing Strings into the Limelight. Agenda. When you take the output of one command and direct it to the input of another command - PowerPoint PPT Presentation
Citation preview
CN1266 NETWORK SCRIPTING
Kemtis KunanuraksapongMSIS with DistinctionMCTS, MCDST, MCP, A+
AGENDA Chapter 7: Working on a Pipeline Chapter 9: Bringing Strings into the
Limelight
WHAT IS PIPING When you take the output of one
command and direct it to the input of another command
Try this on command prompt Ipconfig | find “ipv4 address” Dir c:\windows\system32 | find “.exe”
STRINGING COMMANDS TOGETHER Try this: Get-childitem c:\windows\system32 |
format-table Get-childitem c:\windows\system32 |
format-list Get-childitem c:\windows\system32 |
format-wide
STRINGING COMMANDS TOGETHER (2) Cmdlets use out-default as a default
format to shows the output All object are returned to the command as
a stream of data
GETTING THE RIGHT OUTPUT Get-process | format-table Get-process | format-table –property id, name Get-process | format-table –property name, id Get-process | where-object {$_.Id –gt 1000} |
format-table –property name, cpu, id $_ refers to the current object in the pipe-line
Get-process | where-object {$_.Id –gt 1000} | select-object name, cpu, id | sort-object CPU, ID
CHAPTER 9 BRINGING STRINGS INTO THE LIMELIGHT
WHAT IS STRING? A technical name for text A consecutive sequence of characters Empty VS Null Strings
Empty string – a string with zero length Null string – undefined string (no value, no
length, nothing)
LITERAL STRINGS A literal string is enclosed by double
quotes “this is the a literal string” + “… so the story continues…”
Here-Strings $RegularString = “First Line of string`n” + “Second line `n” + “Third line” Write-host $RegularString
LITERAL STRINGS (2) Here-Strings
$MyHereString = @“ First Line of string Second line Third line ”@ Write-host $MyHereString
You also can use quotation in here-string
COMBINING STRINGS + (Concatenation) – to combine string
together See code in Page 120
You can implicitly or explicitly convert the data type into string See codes in Page 121
SPLITTING STRINGS Method split() is used to spilt the string
into array of strings $str = “this book is good!” $str.split()
SPLITTING STRINGS (2) $myIP = “192.168.10.100” $ipArr = $myIP.split(“.”) Write-Host (“Number of elements in ipArr”
+ $ipArr.length) Write-Host (“First octet: “ + $ipArr[0]) Write-Host (“Second octet: “ + $ipArr[1]) Write-Host (“Third octet: “ + $ipArr[2]) Write-Host (“Fourth octet: “ + $ipArr[3])
SPLITTING STRINGS (3) $myIP = “192.168,10;100” $ipArr = $myIP.split(“.,;”) Write-Host (“Number of elements in ipArr”
+ $ipArr.length) Write-Host (“First octet: “ + $ipArr[0]) Write-Host (“Second octet: “ + $ipArr[1]) Write-Host (“Third octet: “ + $ipArr[2]) Write-Host (“Fourth octet: “ + $ipArr[3])
SNIPPING OFF A PIECE OF A STRING Method substring()
$name = “Steve Seguis” $part1 = $name.substring(0,3) $part2 = $name.substring($name.length-
4,4) Write-Host ($part1 + $part2)
STRING SUBSTITUTIONS $str = “Steve is EVIL!!!” $newstr = $str.replace(“EVIL”,”Good~”) Write-Host $newstr
STRING POSITIONS Method IndexOf() is used to find the
specific character in the string $email = “[email protected]” $atpos = $email.IndexOf(“@”) $user = $email.substring(0, $atpos) $domain = $email.substring($atpos+1,
$email.length-($atpos+1)) Write-Host (“Username: “ + $user) Write-Host (“Domain: “ + $domain)
STRING POSITIONS (2) $email = “My_invalid_email_address” If ($email.IndexOf(“@”) –lt 0){
Write-Host “Invalid email address!” }else{
Write-Host “Valid email address!” }
CASE OF STRINGS Upper case
ToUpper() method Lower case
ToLower() method
REGULAR EXPRESSION A search pattern
[RegEx]::IsMatch(“This book is really interesting.”,”book”)
[RegEx]::IsMatch(“I have 2 siblings”,”[0-9]”)
*NOTE* It is case sensitive
REGULAR EXPRESSION (2) You can use escape string (\) if you
want to search for special character on page 129 [RegEx]::IsMatch(“Visit us at
dummies.com”,”dummies\.com”) . (dot) is a single-character wildcard
[RegEx]::IsMatch(“bell”,”.ell”)
REGULAR EXPRESSION (3) $username = “testuser1” [RegEx]::IsMatch($username,
“testuser[0-9]”)
If you want the name to end with either ‘a’ or ‘e’ $name = “Anna” [RegEx]::IsMatch($name,”Ann[ae]”)
REGULAR EXPRESSION (4) If you want to exclude character from a
match, you can negate a character set by prefixing it with the caret (^) [RegEx]::IsMatch(“food”,”[^fh]ood”)
See Table 9-1 on Page 131 for more information
DEFINE OPTIONAL Question mask (?) indicates that the
preceding character can exist zero times or one time [RegEx]::IsMatch(“favorite”,”favou?rite”) [RegEx]::IsMatch(“favourite”,”favou?rite”) [RegEx]::IsMatch(“Monday”,”Mon(day)?”)
REPEATING SEQUENCES Plus (+) operator indicates that the
preceding character can exist one or more times [RegEx]::IsMatch(“srvfile1”,”srv[a-z0-9]+”) [RegEx]::IsMatch(“srvfile1”,”srv[a-z]+[0-
9]”) [RegEx]::IsMatch(“Monday”,”Mon(day)?”)
REPEATING SEQUENCES (2) star (*) operator indicates that the
preceding character can exist zero times or more times [RegEx]::IsMatch(“Ann”,”Ann[a-z]*”)
Repetitve Format [RegEx]::IsMatch(“96813”,”[0-9] [0-9] [0-9]
[0-9] [0-9]” [RegEx]::IsMatch(“96813”,”[0-9] {5}”
REPEATING SEQUENCES (3) Repetitve Format
[RegEx]::IsMatch(“96813”,”[0-9] [0-9] [0-9] [0-9] [0-9]”
[RegEx]::IsMatch(“96813”,”[0-9] {5}” [RegEx]::IsMatch(“USERA”,”USER[A-Z]
{2,5}”) Ends in a sequence of two to five upper case
letters
ANCHOR TO MAINTAIN POSITION ^ - the match must occur at the beginning of the string [RegEx]::IsMatch(“SRVFILE1”,”^SRV[A-Z]
+[0-9]”) [RegEx]::IsMatch(“TESTSRVFILE1”,”^SRV[A
-Z]+[0-9]”)
ANCHOR TO MAINTAIN POSITION (2) $- the match must occur at the end of
the string [RegEx]::IsMatch(“SRVFILE1”,”SRV[A-Z]
+[0-9]$”) [RegEx]::IsMatch(“TESTSRVFILE1”,”SRV[A-
Z]+[0-9]$”) [RegEx]::IsMatch(“SRVFILE1TEST”,”SRV[A-
Z]+[0-9]$”)
COMING UP WITH ALTERNATIVES [RegEx]::IsMatch(“Dummies.com”,”[A-
za-z0-9]+\.(com|edu|net)”)
REGEX IN WINDOWS POWERSHELL $email = “[email protected]”
If ($email –match “[A-za-z0-9][email protected]”){
Write-Host “$email is a dummies.com email address”
}
REGEX IN WINDOWS POWERSHELL (2) $str = “Visit us at www.dummies.com” $newstr = $str –replace “www\.[A-za-
z0-9]+\.(com|edu|net)”,”WEBSITE NAME KEPT SECRET”
Write-Host $newstr