FAQ: Come posso usare PowerShell per vedere i miei dati di testo?
Secondo Wikipedia, Windows PowerShell è il framework di automazione delle attività di Microsoft, che consiste in una shell a riga di comando e un linguaggio di scripting associato costruito sopra e integrato con il Framework.NET. PowerShell può essere utile quando si vogliono vedere poche righe di un file di testo molto grande. Per accedere a PowerShell, puoi cliccare su Start, Accessori, Windows PowerShell. Questo aprirà una finestra di comando simile al DOS. Come in Unix e DOS, è possibile emettere comandi dal prompt. Se non avete installato PowerShell sul vostro computer, potete scaricarlo dal sito web di Microsoft.
I comandi in PowerShell sono chiamati “cmdlets” (pronunciato “command-lets”, o piccoli comandi), e fanno distinzione tra maiuscole e minuscole. Potete trovare un elenco dei comandi disponibili qui. Illustreremo alcuni cmdlets che possono essere utili quando volete vedere alcuni dei contenuti di un grande file di testo. Le linee che iniziano con un segno cancelletto (#) sono commenti.
Per ottenere aiuto, puoi digitare le seguenti cmdlets.
# getting help# http://technet.microsoft.com/en-us/library/dd347616.aspxget-help Get-Content -examplesman gc
Iniziamo con il familiare “Hello, World!” per mostrare come le variabili possono essere create, e poi usando “pwd” e “dir” per ottenere informazioni sulle directory.
# 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
Per registrare lo script (o la serie di cmdlets che digitate), è possibile utilizzare le seguenti cmdlets.
start-transcript "D:datatranscript.txt"#things in between will be recordedstop-transcript
La cmdlet “Get-Content” è molto utile per accedere ai file di testo. Nel primo esempio, accediamo alle prime 7 righe del file di testo, che chiamiamo “large.txt”. Successivamente, accediamo alle ultime 2 righe, e poi otteniamo il numero totale di righe. Si noti che il cmdlet “Get-Content” può essere abbreviato in “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
È possibile accedere a una colonna specifica, e si possono ottenere informazioni su data e ora.
# 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
Di seguito alcuni esempi di ricerca, sottoinsieme e aggiunta.
# 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