PowerShell è uno strumento potente per la gestione dei dati, ma di solito fornisce troppa informazione in una sola volta. Come sai, un’eccessiva quantità di informazioni può essere travolgente e difficile da analizzare. Ma non preoccuparti. Il cmdlet PowerShell Select-Object
ti sarà molto utile.
In questo tutorial, imparerai le basi del cmdlet Select-Object
per restringere o filtrare i risultati in molti modi diversi.
Continua a leggere e inizia una gestione dei dati senza dolore!
Prerequisiti
Questo tutorial comprende dimostrazioni pratiche. Per seguirlo, assicurati di avere un sistema con PowerShell installato. Questo tutorial utilizza Windows 10 con PowerShell 7, ma qualsiasi versione moderna dovrebbe funzionare.
Cosa è il cmdlet Select-Object di PowerShell?
Il cmdlet Select-Object
semplifica la gestione dei dati consentendoti di selezionare proprietà specifiche da un oggetto o un insieme di dati. Allo stesso tempo, puoi rinominare proprietà o creare proprietà calcolate basate su quelle esistenti.
Il sintassi di base di Select-Object
è la seguente, dove:
Parameter | Function |
---|---|
-InputObject |
Specifies the object or data set you want to work with, which can be an object, an array of objects, or an output of another cmdlet. |
Property |
Specifies the property or properties to select from the InputObject parameter. You can specify multiple properties separated by commas. |
Optional Parameters |
Allows you to refine your selection, such as selecting a certain number of objects or skipping objects. |
Selezione di Oggetti per Proprietà
Dato che è necessaria più di una breve introduzione per soddisfare il tuo desiderio di apprendere sul cmdlet Select-Object
, perché non iniziare con uno dei suoi casi d’uso comuni? Inizia questo tutorial selezionando una proprietà specifica da un oggetto con il cmdlet Select-Object
.
Supponiamo tu abbia una lista di processi in esecuzione sul tuo computer, ma desideri vedere solo i nomi di ciascun processo. Specificando la proprietà Name
al cmdlet Select-Object
risolverà il problema.
Apri PowerShell ed esegui il seguente comando Get-Process
per recuperare e stampare solo un elenco di tutti i processi (Select-Object
) per Name
.

Oltre ai processi in esecuzione, il cmdlet
Select-Object
ti consente di lavorare su un file CSV. Supponiamo tu abbia un file CSV con molte colonne ma ne hai bisogno solo di alcune. In tal caso, lascia che il cmdletSelect-Object
scelga solo le colonne rilevanti così da poter manipolare e analizzare i dati.
Esegui ora il seguente comando per selezionare più proprietà (Select-Object
): Name
e CPU
(separati da virgole). Questa funzionalità è utile quando si lavora con grandi set di dati in cui sono necessarie solo alcune proprietà di ciascun oggetto.
Inoltre, questo comando ordina anche l’elenco degli oggetti (Sort-Object
) in ordine -Descending
con la proprietà CPU
come riferimento.
Di seguito, puoi vedere i processi elencati, a partire da quello che consuma più risorse, Google Chrome (se ne hai installato uno).

Creazione di una Proprietà Calcolata
Quando cerchi proprietà che si adattino meglio alle tue esigenze, considera la creazione di una proprietà calcolata. Perché? Le proprietà calcolate ti consentono di manipolare e trasformare i dati, combinare proprietà esistenti, eseguire operazioni matematiche o formattare i dati in un modo specifico.
Per creare una proprietà calcolata, devi specificare un nuovo nome di proprietà e un’espressione che definisca come calcolare il valore della proprietà:
Esegui il comando seguente per eseguire le seguenti operazioni:
- Ottenere un elenco dei processi in esecuzione (
Get-Process
), selezionando solo (Select-Object
) le proprietàName
eCPU
. - Crea una nuova proprietà calcolata con il
Name
Memory (MB)
, che calcola l’utilizzo della memoria di ciascun processo in megabyte. L’utilizzo della memoria viene calcolato utilizzando unExpression
che divide la proprietàWorkingSet
per1MB
. Qualsiasi espressione valida di PowerShell funziona nella creazione di una proprietà calcolata. - Stampa tutti i processi in esecuzione recuperati in ordine
-Descending
per la proprietà calcolataMemory (MB)
.

Escludendo una Proprietà Specificata
Nella vita reale, i risultati di un comando Select-Object
possono contenere informazioni sensibili, come nomi utente e password. Come evitare questo rischio?
Per impedire che i dati sensibili vengano visualizzati in output, aggiungere il parametro -ExcludeProperty
per escludere una proprietà specificata dall’output.
Esegui il seguente comando per svolgere i seguenti compiti:
- Recupera un elenco di tutti i file e cartelle (
Get-ChildItem
) nella directoryC:\\
in modo ricorsivo (-Recurse
).
- Passa l’output al cmdlet
Select-Object
per selezionare le proprietàName
,Length
, eLastWriteTime
. - Escludi (
-ExcludeProperty
) la proprietàFullName
dall’output. In questo modo si evita che i percorsi completi vengano visualizzati nell’output, potendo contenere informazioni confidenziali.

Saltare il Primo o l’Ultimo Numero di Oggetti
Quando si lavora con set di dati massicci, trovare i dati necessari può essere come cercare un diamante in una miniera di carbone. Ma perché perdere tempo a setacciare dati irrilevanti?
In PowerShell, il cmdlet Select-Object
fornisce due parametri che ti permettono di escludere il primo (-Skip
) e l’ultimo (-SkipLast
) numero di oggetti nell’output, rispettivamente.
Per vedere come funziona saltare diversi oggetti da un output:
Esegui il comando seguente per ottenere tutti i processi in esecuzione (Get-Process
) ma -Skip
i primi 100
oggetti restituiti.
Nota che il numero di oggetti saltati si basa su valori interi (numeri positivi e interi senza punti decimali), che in questo caso è
100
.

Ora, esegui il comando seguente per ottenere un elenco dei contenuti della directory di lavoro (Get-ChildItem
) ma saltare gli ultimi (-SkipLast
) 100
oggetti restituiti.

Selezione del Primo o Ultimo Numero di Oggetti
Oltre a saltare il primo e l’ultimo numero degli oggetti, potresti essere interessato a selezionare invece il primo e l’ultimo numero degli oggetti. Il cmdlet Select-Object
supporta questa funzione con i parametri First
e Last
che ti consentono di saltare tutto il resto per risparmiare tempo e risorse.
Esegui il seguente comando per ottenere tutti i processi, ma seleziona solo (Select-Object
) i primi -First 10
oggetti restituiti.

Ora, esegui il comando qui sotto per ottenere tutti i contenuti della directory di lavoro (Get-ChildItem
), ma seleziona solo (Select-Object
) gli ultimi -Last 10
oggetti restituiti.

Selezione esclusiva di oggetti unici
Mentre lavori con set di dati più grandi, potresti incontrare valori duplicati che potresti voler escludere dall’output, il che è normale. Ma la cosa buona con il cmdlet Select-Object
è che non devi escludere manualmente i valori duplicati.
Aggiungendo il parametro -Unique
puoi selezionare solo gli oggetti unici dall’output, ottimizzando la tua analisi e migliorando l’accuratezza dei risultati.
Esegui il comando qui sotto per selezionare (Select-Object
) e restituire i primi -First 2
oggetti.
Qui sotto, puoi vedere due oggetti restituiti indipendentemente se l’altro è un valore duplicato.

Infine, esegui il seguente comando per restituire solo un valore -Unique
per ciascuno dei primi -First 2
oggetti selezionati.
Questa volta, puoi vedere solo un risultato dai primi due oggetti selezionati poiché l’altro è solo un valore duplicato. Come puoi vedere, questa produzione dimostra che il parametro -Unique
è utile per eliminare rapidamente eventuali oggetti duplicati nei tuoi dati.

Conclusione
PowerShell tende a produrre un sovraccarico di informazioni. Ma in questo tutorial, hai imparato come il cmdlet Select-Object
di PowerShell aiuti a semplificare i tuoi dati per vedere solo le informazioni necessarie.
Hai visto come diversi parametri ti consentono di selezionare ed escludere dati, in particolare i valori duplicati da un output. Con il cmdlet Select-Object
, la gestione di grandi quantità di dati non deve essere un compito scoraggiante.
A questo punto, puoi rapidamente perfezionare i tuoi risultati per renderli più adatti all’analisi e alla risoluzione dei problemi. Ma perché non imparare come formattare le tue proprietà calcolate per migliorare leggibilità e usabilità?
Source:
https://adamtheautomator.com/powershell-select-object/