Come utilizzare Powershell Get-Content e ForEach con esempi
Questa zona S ti insegna come combinare PowerShell Get-Content con il ciclo ForEach. Puoi usare Get-Content per elencare il contenuto di un file di testo, quindi usare l'istruzione ForEach per scorrere il contenuto del file di testo.
moto x puro ritorno a magazzino
Esistono 3 varianti di PowerShell ForEach. C'è l'istruzione ForEach e il metodo ForEach.
Inoltre, è disponibile il cmdlet ForEach-Object.
Questa guida inizia esaminando il comando Get-Content: la sua sintassi, i parametri e alcuni esempi.
Quindi, nelle restanti parti della guida, imparerai come utilizzare ciascuna le 3 varianti di PowerShell ForEach e Get-Content. Per ogni variante di ForEach, discuterò la sua sintassi.
Infine, mostrerò più esempi di come utilizzare la variante PowerShell ForEach e Get-Content.
Sfoglia gli argomenti dei post
- Comando Get-Content: sintassi, parametri, esempi
- Come utilizzare PowerShell per ogni istruzione con Get-Content
- Sintassi di PowerShell per ogni istruzione
- Come iterare un file di testo con l'istruzione ForEach
- Come combinare PowerShell Get-ChildItem, ForEach Loop e Get-Content
- Come creare cartelle con il contenuto di un file di testo
- Come dividere, quindi unire il contenuto di un file di testo con Get-Content e ForEach Statement
- Come utilizzare PowerShell per ogni metodo con Get-Content
- Come utilizzare il cmdlet PowerShell ForEach-Object con Get-Content
- Lavorare con PowerShell Get-Content e ForEach: Considerazioni finali
- Riferimenti e ulteriori letture
Comando Get-Content: sintassi, parametri, esempi
Come accennato nella mia introduzione, prima di poter utilizzare PowerShell ForEach per iterare il contenuto di un file, è necessario importare prima il contenuto del file di testo in PowerShell.
Il cmdlet Get-Content viene utilizzato per elencare o importare il contenuto di un file di testo in PowerShell.
In questa sezione, esamineremo la sintassi e i parametri di Get-Content. Termino la sezione con alcuni esempi.
Sintassi e parametri del comando Get-Content
La sintassi semplificata del comando Get-Content è...
|_+_|Get-Content ha molti più parametri. Ho specificato i parametri comunemente usati.
Utilizzare il - Sentiero parametro per specificare il percorso completo () del file di testo. È necessario includere l'estensione del file di testo (.txt).
Il Sentiero parametro è in posizione 0, quindi non è necessario specificarlo. Puoi semplicemente inserire il valore immediatamente dopo Get-Content. Per saperne di più sui parametri di PowerShell, leggi la nostra guida – Attributo parametro di PowerShell ParamEsempi di comandi Get-Content
Lo screenshot seguente è un elenco di server. Per importare il contenuto del file di testo in PowerShell, eseguirò il comando seguente...
|_+_|Il comando visualizza l'elenco dei server nel file di testo.
Come utilizzare PowerShell per ogni istruzione con Get-Content
In questa sezione imparerai come reindirizzare il risultato di Ottieni contenuto in Per ciascuno Ciclo continuo. Poi, all'interno del Per ciascuno Blocco loop, eseguire compiti specifici.
La sezione inizia discutendo la sintassi di PowerShell ForEach Loop.
Sintassi di PowerShell per ogni istruzione
Un'istruzione PowerShell ForEach esegue un'operazione su ogni elemento in una raccolta di oggetti di input. Ai fini di questa guida, l'operazione verrà eseguita rispetto agli elementi in un file di testo.
La sintassi di ForEach Statement è:
|_+_|Come previsto, la sintassi inizierà con 'ForEach'. È quindi seguito da a tra parentesi '()'; e infine blocco '{}'.
Nella prima sezione di questa guida ho fornito un esempio di come importare il contenuto di un file di testo con Ottieni contenuto . Ecco il comando...
|_+_|Se lo includiamo nella sintassi dell'istruzione ForEach, l'istruzione ForEach verrà aggiornata come mostrato di seguito:
|_+_|Nella sintassi dell'istruzione ForEach aggiornata, ho sostituito il file $ raccolta variabile con Get-Content D:PS-TutorialS ZonesS Zones-Servers.txt comando.
Inoltre, possiamo salvare questo comando nel file $ raccolta variabile…
|_+_|Quindi, possiamo utilizzare la versione semplificata della sintassi dell'istruzione ForEach...
come salire di livello velocemente in steam|_+_|
Per ulteriori informazioni su questa potente istruzione PS, fare clic su PowerShell ForEach: Syntax, Parameters, Examples .
Nelle restanti sottosezioni di questa sezione, fornirò ulteriori esempi.
Come iterare un file di testo con l'istruzione ForEach
In questa sottosezione, aggiungerò alcuni comandi al blocco comandi dell'istruzione ForEach. Ecco i comandi aggiornati.
|_+_|Se eseguo lo script in PowerShell ISE , viene visualizzato il contenuto del file di testo.
Nella prima riga dello script, ho utilizzato Get-Content per importare il contenuto del file di testo in PowerShell; quindi ho usato l'istruzione PowerShell ForEach per iterare il contenuto ed elencarli con il comando write-host $item.Come combinare PowerShell Get-ChildItem, ForEach Loop e Get-Content
Se hai più file di testo in una cartella, devi prima ottenere il percorso completo dei file di testo. Per ottenere il percorso completo dei file di testo, è necessario il comando Get-ChildItem.
Per illustrare questo, ho creato due file di testo in una cartella. Guarda lo screenshot qui sotto...
Come ho detto eelier, il primo passo è ottenere il percorso di tutti i file di testo nella cartella. Ecco il comando che fa questo lavoro...
|_+_|Il comando elenca il percorso completo dei file di testo...
Tuttavia, se nella cartella sono presenti altri elementi, ad esempio sottocartelle e altri tipi di file, è necessario migliorare il comando per restituire solo file di testo...
|_+_| Ho salvato il risultato del comando in una variabile per abbreviare i comandi successivi.Ora che abbiamo i percorsi di tutti i file di testo nella cartella, il passaggio successivo consiste nell'usare Get-Content per elencare il contenuto di ciascun file di testo. Tuttavia, poiché esiste più di un file di testo, è necessario utilizzare l'istruzione ForEach.
|_+_|Ecco il risultato dello script in PowerShell ISE...
Come creare cartelle con il contenuto di un file di testo
In questa sottosezione imparerai come creare cartelle con il contenuto di un file di testo.
Per dimostrarlo, ho un file di testo con i nomi.
Userò Get-Content per importare il contenuto del file di testo in PowerShell; quindi utilizzare il blocco di istruzioni ForEach per scorrere il contenuto dei file di testo.
Infine, all'interno del blocco di istruzioni ForEach, userò apprezzamento comando per creare cartelle con il contenuto del file di testo.
Tuttavia, invece di separare i comandi come abbiamo fatto finora, combinerò tutti i comandi. Ecco la sceneggiatura...
|_+_|In questo comando, ho usato i comandi del prompt dei comandi di Windows, cd e mkdir . Ecco la versione PowerShell del comando...
|_+_|Ed ecco il risultato in PoweShell ISE:
In alternativa, se non si desidera visualizzare le informazioni sulle cartelle create, inviare tramite pipe l'output di Nuovo oggetto comando a Fuori Null .
Lo script ora sarà simile a questo...
|_+_|Come dividere, quindi unire il contenuto di un file di testo con Get-Content e ForEach Statement
Mentre stavo cercando questo articolo, mi sono imbattuto in questo stackoverflow.com domanda. La persona che ha posto la domanda ha un file di testo con le seguenti stringhe:
|_+_|Tuttavia, la persona vuole modificare le stringhe in modo che assomiglino a questa:
|_+_|Per replicare questa situazione, ho creato un file di testo con le stringhe originali. Quindi, ho creato un breve script che otterrà il risultato richiesto.
Ecco la sceneggiatura.
|_+_|La prima e la seconda riga sono relativamente semplici. Nella riga 1, ho salvato il percorso del file di testo in una variabile.
Quindi, nella riga 2, ho usato Ottieni contenuto per importare il contenuto del file di testo in PowerShell e salvare il risultato in un'altra variabile.
Infine, nelle righe 3, 4 e 5 ho utilizzato il risultato di Ottieni contenuto comando in un'istruzione PowerShell ForEach. Ho salvato il risultato dell'istruzione ForEach in un'altra variabile.
Il più importante dell'istruzione ForEach è quello che ho nel blocco comandi...
|_+_|La prima parte del comando usa il metodo PowerShell Split per interrompere il contenuto del file di testo. Ecco il comando...
|_+_|Quello che fa questo comando è rompere le stringhe nel file di testo in | carattere. Per aiutarti a relazionarti con questo, ecco le stringhe originali nel file di testo.
|_+_|Il risultato del comando split crea le seguenti singole stringhe:
|_+_|Quando PowerShell split crea singole stringhe come questa, ogni elemento è rappresentato da un numero di posizione, a partire da 0 (zero). Quindi, puoi accedere alla prima stringa, 80055555 con [0], il secondo con [1] e così via.
Prima di spiegare la parte successiva del comando, vediamo l'output che vogliamo ottenere. Ecco qui…
samsung s7 rallentatore|_+_|
Se dovessimo interrompere questo output con PowerShell Split, raggiungeremo questo...
|_+_|Se lo confronti con il risultato quando dividiamo la stringa originale, noterai che la sottostringa nella posizione 4 del file di testo originale ( DCDOC ) è ora nella posizione 2. Ogni altra sottostringa ha mantenuto la sua posizione originale.
È qui che viene mostrato il lavoro del secondo bit del comando...
|_+_|Questo comando significa semplicemente...
|_+_| Ho incluso le virgole (,) per separare le sottostringhe a scopo illustrativo. Il comando non include le virgole.Finora ho spiegato questo comando..
|_+_|Fino a questo punto…
|_+_|Il bit finale utilizza l'operatore di unione di PowerShell per inserire il carattere originale |, tra la nuova stringa creata da questo comando...
|_+_|Negli ultimi paragrafi ho spiegato la riga 4 di questo script.
|_+_|Infine, nella riga 6, ho reindirizzato l'output della nuova stringa salvata nuovo file variabile in Imposta-Contenuto . Imposta-Contenuto sovrascrive il file originale con la nuova stringa.
Questo è un brillante esempio di come combinare Get-Content con l'istruzione ForEach di PowerShell!
Come utilizzare PowerShell per ogni metodo con Get-Content
Il metodo ForEach è stato introdotto in PowerShell versione 4. Questo metodo offre agli sviluppatori di script di PowerShell un altro modo per scorrere il contenuto di un file di testo.
In questa sezione imparerai come utilizzare il metodo ForEach con Get-Content con più esempi.
La sezione inizia con la sintassi del metodo ForEach.
Sintassi di PowerShell per ogni metodo
La sintassi di PowerShell ForEach Method è...
|_+_|L'accesso al metodo ForEach di un oggetto è simile all'accesso a qualsiasi altro metodo di PowerShell. L'unica differenza è che il metodo ForEach include un blocco {} all'interno del blocco ().
Come combinare PowerShell Get-ChildItem, ForEach e Get-Content
Nella sezione Dichiarazione ForEach di questa guida, ho condiviso lo script di seguito...
|_+_|Lo script utilizzato Get-ChildItem per restituire il percorso completo ai file di testo in questa cartella...
Ecco lo script equivalente del metodo ForEach...
|_+_|Come creare cartelle con il contenuto di un file di testo con il metodo ForEach
Simile all'esempio nell'ultima sottosezione, ho usato lo script seguente nella sezione ForEach Statement di questa guida...
|_+_|Lo script utilizzava Get-Content e ForEach Statement per creare cartelle utilizzando il contenuto del file di testo nello screenshot qui sotto...
A differenza dell'istruzione ForEach che utilizza il comando...
come chiudere un'app su xbox one|_+_|
Il metodo PowerShell ForEach chiama il metodo ForEach nel risultato di Get-Content in questo modo...
|_+_|Quindi, all'interno del blocco (), inseriamo {} blocco ed eseguiamo il Nuovo oggetto comando. Tuttavia, invece di utilizzare il $nomefile variabile, questa volta uso la variabile automatica $_
|_+_|La versione finale dello script ForEach Method si presenta così...
|_+_|Questa volta, voglio eseguire il comando in PowerShell, invece di PowerShell ISE. Quindi, avrò l'intero script in una singola riga...
|_+_|Ecco il comando in PowerShell e le cartelle create. Ho incluso anche lo screenshot del file di testo con i nomi delle cartelle...
Come dividere, quindi unire il contenuto di un file di testo con il metodo Get-Content e ForEach
Nella sezione Dichiarazione ForEach di questa guida, ho fornito un esempio con questo stackoverflow.com domanda. La persona che ha posto la domanda vuole modificare la seguente stringa in un file di testo...
|_+_|A questo…
|_+_|Per risolvere il problema, ho creato questo script che utilizza l'istruzione Get-Content e PowerShell ForEach...
|_+_|In questa sezione della guida discutiamo come utilizzare Ottieni contenuto e ForEach Method, ecco lo script equivalente con ForEach Method...
|_+_|La modifica è la stessa tranne per il fatto che, in questa versione modificata, ho sostituito l'istruzione ForEach con il metodo ForEach.
Come utilizzare il cmdlet PowerShell ForEach-Object con Get-Content
In quest'ultima sezione, ripeterò alcuni degli esempi che ho già fornito nelle prime due sezioni.
Tuttavia, in questa sezione, sostituirò l'istruzione ForEach e/o il metodo ForEach con il cmdlet ForEach-Object.
La sezione inizia con la sintassi del cmdlet ForEach-Object
Sintassi del cmdlet ForEach-Object
Esistono due sintassi di ForEach-Object. Ecco le loro versioni semplificate:
|_+_| |_+_|Le sintassi di ForEach-Object possono apparire complesse. Tuttavia, è molto facile da usare. Per questa guida, ci concentreremo sul InputObject parametro.
discordia lascia la chat vocale
Questo è il parametro che alimenta l'input in ForEach-Object. Inoltre, InputObject può anche essere inviato tramite una pipeline...
|_+_|Come creare cartelle con il contenuto di un file di testo con il cmdlet ForEach-Object
Nella prima e nella seconda sezione di questa guida, ho creato i seguenti script.
|_+_| |_+_|Il primo script utilizza l'istruzione Get-Content ForEach per creare cartelle utilizzando il contenuto del file di testo nello screenshot seguente...
Inoltre, il secondo script utilizza il metodo Get-Content ForEach per eseguire la stessa attività.
Se si desidera utilizzare il cmdlet ForEach-Object invece dell'istruzione ForEach o del metodo ForEach, lo script verrà modificato come mostrato di seguito...
|_+_|Come dividere, quindi unire il contenuto di un file di testo con il cmdlet Get-Content e ForEach-Object
Nelle sezioni Istruzione ForEach e Metodo ForEach, ho creato i seguenti script per risolvere questo problema stackoverflow.com domanda.
|_+_| |_+_|Ecco la versione ForEach-Object Cmdlet dello stesso script:
|_+_|Lavorare con PowerShell Get-Content e ForEach: Considerazioni finali
Gli argomenti condivisi in questa guida potrebbero creare confusione, soprattutto perché coprivano 3 varianti di PowerShell ForEach. Per semplificare la comprensione, ecco una tabella che riassume i concetti condivisi in questo articolo.
| Domanda | Per ogni dichiarazione | Per ogni metodo | Cmdlet ForEach-Object |
|---|---|---|---|
| Accetta l'input da Get-Content | ✓ | ✓ | ✓ |
| In che modo accetta l'input da Get-Content? | Pipeline | o all'interno del blocco di condizione ForEach Statement | Metodo PowerShell .() | conduttura | o tramite il InputObject parametro |
| Come trasforma l'input da Get-Content? | Crea una variabile temporale che rappresenta ogni oggetto nella raccolta | Rappresenta ogni oggetto nella raccolta con la variabile della pipeline automatica di PowerShell, $_ | Rappresenta ogni oggetto nella raccolta con la variabile della pipeline automatica di PowerShell, $_ |
| Esempio di script? | ForEach ($nomefile in Get-Content D:PS-Tutoriallist.txt) Out-Null | (Get-Content D:PS-Tutoriallist.txt).ForEach( Nuovo oggetto -Percorso D:PS-Tutorial -Nome $_ -Tipo oggetto Directory ) | Ottieni contenuto D:PS-Tutoriallist.txt | Per ogni oggetto Nuovo oggetto -Percorso D:PS-Tutorial -Nome $_ -Tipo oggetto Directory |
Ecco fatto: la nostra guida aggiornata su come utilizzare PowerShell Get-Content e ForEach! Spero che tu l'abbia trovato utile?
Se l'hai trovato utile, vota gentilmente sì alla Domanda utile di questo post di seguito.
In alternativa, puoi fare una domanda, lasciare un commento o fornire più feedback con il modulo Lascia un commento che si trova alla fine di questa pagina.
Infine, per altre S Zone di PowerShell tech, visita la nostra pagina della guida di Windows PowerShell. Potresti anche trovare molto utile la nostra pagina Lavoro dalla home.


