1 / 33

CN1266 Network Scripting

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

duc
Download Presentation

CN1266 Network Scripting

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Kemtis Kunanuraksapong MSIS with Distinction MCTS, MCDST, MCP, A+ CN1266 Network Scripting

  2. Chapter 7: Working on a Pipeline Chapter 9: Bringing Strings into the Limelight Agenda

  3. 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” What is Piping

  4. 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

  5. Cmdlets use out-default as a default format to shows the output • All object are returned to the command as a stream of data Stringing Commands Together (2)

  6. 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 Getting the right output

  7. Chapter 9 Bringing strings into the limelight

  8. 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) What is String?

  9. 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

  10. Here-Strings • $MyHereString = @“ • First Line of string • Second line • Third line • ”@ • Write-host $MyHereString • You also can use quotation in here-string Literal strings (2)

  11. + (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 Combining strings

  12. Method split() is used to spilt the string into array of strings • $str = “this book is good!” • $str.split() Splitting Strings

  13. $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 (2)

  14. $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)

  15. Method substring() • $name = “Steve Seguis” • $part1 = $name.substring(0,3) • $part2 = $name.substring($name.length-4,4) • Write-Host ($part1 + $part2) Snipping off a piece of a string

  16. $str = “Steve is EVIL!!!” $newstr = $str.replace(“EVIL”,”Good~”) Write-Host $newstr String Substitutions

  17. Method IndexOf() is used to find the specific character in the string • $email = “someone@dummies.com” • $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

  18. $email = “My_invalid_email_address” • If ($email.IndexOf(“@”) –lt 0){ • Write-Host “Invalid email address!” • }else{ • Write-Host “Valid email address!” • } String Positions (2)

  19. Upper case • ToUpper() method • Lower case • ToLower() method Case of Strings

  20. 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

  21. 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 (2)

  22. $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 (3)

  23. 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 Regular Expression (4)

  24. 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)?”) Define optional

  25. 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

  26. 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 (2)

  27. 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 Repeating sequences (3)

  28. ^ - 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

  29. $- 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]$”) Anchor to maintain position (2)

  30. [RegEx]::IsMatch(“Dummies.com”,”[A-za-z0-9]+\.(com|edu|net)”)[RegEx]::IsMatch(“Dummies.com”,”[A-za-z0-9]+\.(com|edu|net)”) Coming up with alternatives

  31. $email = “Somebody@dummies.com” • If ($email –match “[A-za-z0-9]+@dummies.com”){ • Write-Host “$email is a dummies.com email address” • } RegEx in Windows PowerShell

  32. $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 RegEx in Windows PowerShell (2)

More Related