FAQ: Hoe kan ik PowerShell gebruiken om mijn tekstgegevens te bekijken?
Volgens Wikipedia is Windows PowerShell Microsofts raamwerk voor taakautomatisering, bestaande uit een commandoregel en een bijbehorende scripttaal die is gebouwd op en geïntegreerd met het.NET Framework. PowerShell kan nuttig zijn wanneer u een paar regels van een zeer groot tekstbestand wilt bekijken. Om toegang te krijgen tot PowerShell, kunt u klikken op Start, Bureau-accessoires, Windows PowerShell. Dit zal een DOS-achtig commando venster openen. Net als in Unix en DOS kunt u commando’s geven vanaf de prompt. Als PowerShell niet op uw computer is geïnstalleerd, kunt u het downloaden van deze Microsoft-website.
De commando’s in PowerShell worden “cmdlets” genoemd (spreek uit als “command-lets”, of kleine commando’s), en ze zijn hoofdlettergevoelig. Een overzicht van de beschikbare commando’s vindt u hier. We zullen een paar cmdlets illustreren die handig kunnen zijn wanneer je een deel van de inhoud van een groot tekstbestand wilt zien. De regels die beginnen met een pond teken (#) zijn opmerkingen.
Om hulp te krijgen, kunt u de volgende cmdlets typen.
# getting help# http://technet.microsoft.com/en-us/library/dd347616.aspxget-help Get-Content -examplesman gc
We beginnen met het bekende “Hallo, wereld!” om te laten zien hoe variabelen kunnen worden aangemaakt, en vervolgens met “pwd” en “dir” om informatie over mappen op te vragen.
# hello world!$hi="Hello, World!"$hiImage PS4pwddir
# counting the number of files in a folderget-childitem D:dataget-childitem D:data -name(get-childitem D:data).Count
Om het script (of de reeks cmdlets die u typt) op te nemen, kunt u de volgende cmdlets gebruiken.
start-transcript "D:datatranscript.txt"#things in between will be recordedstop-transcript
Het cmdlet “Get-Content” is erg handig voor het openen van tekstbestanden. In het eerste voorbeeld openen we de eerste 7 rijen van het tekstbestand, dat we “large.txt” noemen. Vervolgens bekijken we de laatste 2 rijen, en dan krijgen we het totaal aantal rijen. Merk op dat het cmdlet “Get-Content” kan worden afgekort tot “gc”.
# headGet-Content D:datalarge.txt -totalcount 7gc D:datalarge.txt -totalcount 7gc D:datalarge.txt | select-object -first 7# tailgc D:datalarge.txt | select-object -last 2# total number of rowsGet-Content D:datalarge.txt | Measure-Objectgc D:datalarge.txt | Measure-Object
Image PS6
Je kunt toegang krijgen tot een specifieke kolom, en je kunt datum- en tijdinformatie krijgen.
# get a specific column# http://stackoverflow.com/questions/2503010/extracting-columns-from-text-file-using-powershellgc D:datalarge.txt | Foreach {($_ -split 's+', 8)}gc D:datalarge.txt | Foreach {"$(($_ -split 's+', 8))"}gc D:datalarge.txt | Foreach {"$(($_ -split 's+', 8))"} > col12.txt
# date and timeGet-DateGet-Date -displayhint dateGet-Date "7/22/1980Image PS2
Hieronder staan een paar voorbeelden van zoeken, subsetting en appending.
# searching and subsettingmore D:datalarge.txtselect-string "seqn" D:datalarge.txt select-string -quiet "seqn" D:datalarge.txtImage PS5# appending add-content -value "addthis" simple.txtadd-content -value (get-content D:datalarge.txt) simple.txt