Come utilizzare PowerShell per scrivere su un file di testo

3 giugno 2021 102357 Visualizzazioni

Questa zona S ti insegna diversi modi per usare PowerShell per scrivere su file.

La guida inizia discutendo i diversi cmdlet di PowerShell usati per scrivere l'output su file. La sezione copre Out-file , Add-Content e Set-Content cmdlet con esempi.

Quindi, nella seconda sezione, imparerai come utilizzare PowerShell diversi Metodi per manipolare la scrittura e aggiornare un file di testo.

Infine, l'ultima sezione copre tutti i possibili esempi di scrittura di output in file di testo in PowerShell. Gli esempi vanno da un semplice esempio come la sovrascrittura di file di testo, a esempi avanzati come la manipolazione della codifica dei file.

Se stai cercando un esempio specifico, espandi Sfoglia gli argomenti dei post di seguito e fai clic sull'argomento.

La guida include una sezione delle domande frequenti con brevi risposte alle domande frequenti sull'uso di PowerShell per scrivere l'output in un file di testo.

Sfoglia gli argomenti dei post

Cmdlet di PowerShell utilizzati per scrivere o aggiornare file di testo

Cmdlet di PowerShell per scrivere o aggiornare file di testo

Questa sezione presenta i quattro cmdlet di PowerShell utilizzati per scrivere, aggiornare o sostituire i file di testo. In ogni sottosezione di questa sezione imparerai come utilizzare Out-file , Aggiungi contenuto , e Imposta-Contenuto .

Come scrivere l'output di PowerShell in un file di testo con Out-file

Scrivere l'output in un file di testo è semplice come inviare tramite pipe l'output del primo comando Out-file e specificare il percorso del file di testo.

Nel mio primo esempio, inserirò un testo nel prompt di PowerShell, quindi lo indirizzerò Out-file .

|_+_| Se il file non esiste, Out-File lo creerà nel percorso specificato da Percorso del file parametro.

Il comando verrà eseguito e tornerà al prompt di PowerShell.

Come utilizzare Out-File in PowerShell per scrivere o aggiungere a file

Ecco il file creato nel percorso specificato. La seconda immagine è il contenuto del file di testo.

Come utilizzare Out-File in PowerShell per scrivere o aggiungere a file

Puoi usare questo metodo per scrivere l'output di qualsiasi comando di PowerShell in un file di testo.

In questo secondo esempio, scriverò l'output di Get-Process in un file di testo. Ecco il comando:

|_+_|

Il comando eseguirà e creerà il file process.txt. L'output è mostrato nella seconda immagine qui sotto:

Come aggiungere l'output di PowerShell a un file di testo esistente con Out-file

Un altro modo per usare PowerShell per scrivere su file consiste nell'aggiungere (aggiungere altro contenuto) a un file di testo esistente con del contenuto.

Seguendo il primo esempio, il comando seguente aggiungerà (aggiungerà) le informazioni prima della pipeline (|) in fondo al file, first-file.txt.

|_+_|

Il file ora ha una seconda riga, con il testo This sarà aggiunto sotto la prima riga. Vedi l'immagine qui sotto.

Come usare Aggiungi contenuto In PowerShell per aggiungere un file di testo

Puoi anche usare PowerShell per scrivere su file aggiungendolo a un file di testo esistente con Aggiungi contenuto cmdlet.

Per aggiungere Questo verrà aggiunto sotto la seconda riga al nostro file esistente, first-file.txt, inserisci questo comando e premi invio.

|_+_|

Il file ora avrà una terza riga con il testo Questo sarà aggiunto sotto la seconda riga. Guarda l'immagine qui sotto:

Nell'ultimo esempio, aggiungerò (scriverò) l'output di Get-Processo Cmdlet a processs.txt creato nel file Out-file esempio.

In questo esempio, eseguirò i comandi seguenti:

|_+_| |_+_|

Il primo comando salva l'output di Get-Processo nel Processi variabile. Il secondo comando aggiunge l'output della variabile al file process.txt.

Puoi utilizzare uno dei metodi trattati in questa S Zone per scrivere su file (o aggiungere a un file esistente) con PowerShell!

Come usare Imposta-Contenuto In PowerShell per scrivere su un file di testo

Finora in questa sezione ti ho mostrato come usare Out-file per scrivere in un file di testo. Hai anche visto come utilizzare lo stesso cmdlet per aggiungere un file di testo.

Infine, nell'ultima sottosezione ti ho mostrato come utilizzare Aggiungi contenuto per aggiungere l'output a un file di testo.

Questa sottosezione introduce Imposta-Contenuto . Una differenza tra questo cmdlet e gli altri 2 già discussi è che mentre Out-file e Aggiungi contenuto può aggiungere contenuto a un file di testo, Imposta-Contenuto sovrascrive il contenuto.

Quindi, il comando seguente sovrascrive il contenuto del file con un nuovo contenuto specificato in Valore parametro.

|_+_|

Ecco il file di testo: tutto il suo contenuto precedente è stato sostituito!

File di testo di PowerShell Metodi Utilizzato per scrivere o aggiornare file di testo

Come scrivere su file di testo con i metodi di file di testo di PowerShell

La prima sezione di questa guida trattava diversi cmdlet di PowerShell usati per scrivere l'output in file di testo. In questa sezione imparerai come eseguire le stesse attività con il file di testo di PowerShell Metodi .

La sezione inizia insegnandoti come trovare il file di testo disponibile Metodi . Quindi, nelle sottosezioni successive, imparerai come utilizzare questi PowerShell Metodi per scrivere, aggiornare e sovrascrivere i file di testo dei contenuti.

Userò il file di testo nello screenshot qui sotto per spiegare come trovare PowerShell Metodi disponibile quando si elenca un file di testo con Ottieni contenuto cmdlet. Inoltre, utilizzerò questo file di testo per gli esempi in tutte le sottosezioni di questa sezione.

Come trovare i metodi di file di testo di PowerShell

Per vedere un elenco di tutti Metodi e Operatori disponibile in un file di testo, reindirizzare l'output di Ottieni contenuto comando a Get-Membro .

Ecco un comando di esempio...

|_+_|

Il comando elenca un mucchio di PowerShell Metodi . Tuttavia, ai fini di questa guida, mi interessa quanto segue Metodi :

  • Inserire
  • Rimuovere
  • Sostituire

Inoltre, userò anche il Indice di Metodo nelle mie illustrazioni. Ho evidenziato questi Metodi nel risultato dell'ultimo comando...

Nelle sottosezioni seguenti imparerai come usare questi PowerShell Metodi disponibile quando si elenca un file di testo con Ottieni contenuto cmdlet.

Come usare PowerShell Inserire Metodo per aggiungere stringhe a file di testo esistenti

La sintassi generale di PowerShell Inserire Il metodo è...

|_+_|

Il indice iniziale è il primo carattere della sottostringa di cui vogliamo inserire un testo prima. Inoltre, il valore stringa è il testo che vuoi inserire.

Un modo semplice per determinare il startIndex è calcolare il Indice di valore della stringa attorno alla quale inserire un testo.

So che la maggior parte di quello che ho detto potrebbe suonarti come greco! Quindi, lascia che ti spieghi con un esempio nel mio file di testo.

Per iniziare, voglio salvare il percorso del mio file in una variabile. In questo modo sarà più facile salvare il contenuto aggiornato in un secondo momento.

|_+_|

Successivamente, userò il Ottieni contenuto comando per elencare il contenuto del file di testo. Quindi, salva il risultato in un'altra variabile...

|_+_|

Prima di procedere al passaggio successivo, consenti di ripristinare la sintassi di PowerShell Inserire Metodo…

|_+_|

Come ho accennato in precedenza, il modo più semplice per determinare il startIndex – la posizione nel file di testo in cui vogliamo inserire un testo – è quella di utilizzare il Indice di Metodo .

In questo esempio voglio inserire la parola non prima di sovrascrivere...

Come utilizzare il metodo di inserimento di PowerShell per aggiungere testo a un file di testo esistente

Il primo passo è determinare il Indice di valore di sovrascrittura. Il comando seguente fa il lavoro...

|_+_|

Il risultato è 10.

Tieni presente che questo Indice di di 10 è esattamente all'inizio del primo carattere della parola, sovrascrivi.

Con questo in mente, se voglio inserire una stringa (testo, numeri, caratteri – qualsiasi cosa), prima di sovrascrivere, userò 10 come startIndex .

Inoltre, se voglio inserire qualcosa alla fine della stringa, sovrascrivere, conterò il numero di caratteri dal primo carattere – in questo caso o – alla fine della stringa, sovrascrivere – che sarà18

Nota che anche gli spazi vengono contati come caratteri.

Ma ai fini di questo esempio, voglio inserire la parola non prima di sovrascrivere...

Come utilizzare il metodo di inserimento di PowerShell per aggiungere testo a un file di testo esistente

Questo è il comando che fa questa magia...

|_+_| Ho aggiunto uno spazio dopo non per creare uno spazio tra non e sovrascrivere.

Nel comando, 10 è il startIndex , non è valore stringa . Questo comando segue la sintassi del metodo Inserisci di seguito...

|_+_|

Ed ecco il risultato dell'ultimo comando in PowerShell. Il risultato include la parola che abbiamo inserito!

Ma non abbiamo ancora finito. Il passaggio finale consiste nello scrivere questo valore nello stesso file di testo.

Per fare questo, dobbiamo usare il Imposta-Contenuto comando. Se ricordi, nell'ultima sezione, ho menzionato che, a differenza degli altri 2 Cmdlet di cui ho discusso in quella sezione, Imposta-Contenuto sovrascrive il contenuto di un file di testo.

Quindi, per scrivere l'output dell'ultimo comando di PowerShell nello stesso file di testo, esegui il comando seguente...

|_+_|

Una volta eseguito quest'ultimo comando e aperto il mio file di testo, la parola, non fa ora parte delle stringhe nel file di testo!

Come utilizzare il metodo di inserimento di PowerShell per aggiungere testo a un file di testo esistente

Come usare PowerShell Rimuovere Metodo per eliminare le stringhe in un file di testo esistente

Quando ho introdotto questa sezione, ho menzionato che fornirò esempi con PowerShell Rimuovere Metodo. In questa sottosezione imparerai come utilizzare questo metodo PowerShell per eliminare le stringhe da un file di testo.

Cominciamo con la sintassi di Rimuovere Metodo:

|_+_| |_+_|

Nella prima sintassi, devi semplicemente specificare il startIndex . Inoltre, nella seconda sintassi, devi specificare il startIndex e il contare .

Come ho spiegato nell'ultima sottosezione, puoi ottenere il startIndex calcolando il Indice di della sintassi che vuoi rimuovere.

Inoltre, per la seconda sintassi, il contare è il numero di caratteri – da startIndex – vuoi rimuovere.

Quindi, supponiamo di voler rimuovere la stringa, non aggiunta nel nostro file di testo nell'ultima sottosezione. Il primo passo è determinare il Indice di del primo carattere della stringa, non.

Continuando dagli esempi nell'ultima sottosezione, il terzo comando seguente determinerà il Indice di valore:

|_+_|

Il risultato è 10...

Come utilizzare il metodo di rimozione di PowerShell per eliminare le stringhe in un file di testo esistente

Andando avanti, per rimuovere la stringa, non useremo la seconda sintassi di Rimuovere Metodo.

|_+_|

Nel mio esempio, il startIndex è 10. In precedenza, ho spiegato che il contare è il numero di caratteri – da startIndex – vuoi rimuovere.

Quindi, vogliamo rimuovere la stringa, non - che è di 3 caratteri da startIndex . quindi, il contare è 3.

Sulla base di queste informazioni, il comando seguente rimuoverà la stringa, non dal nostro file di testo..

|_+_|

Ecco il risultato...

Se osservi il risultato da vicino, noterai che c'è un doppio spazio tra volontà e sovrascrittura. Per rimuovere uno degli spazi, fare il contare 4…

|_+_|

Ora lo spazio è finito!

Come utilizzare il metodo di rimozione di PowerShell per eliminare le stringhe in un file di testo esistente

Infine, usa il comando PowerShell di seguito per scrivere il testo aggiornato nel file...

|_+_|

Dopo aver eseguito il comando, il file viene aggiornato senza la stringa, non. Guarda gli screenshot qui sotto...

Come usare PowerShell Sostituire Metodo per sostituire una stringa in un file di testo

Nelle ultime 2 sottosezioni di questa sezione ti ho insegnato come usare il Inserire e Rimuovere Metodi di PowerShell per scrivere in un file di testo.

In quest'ultima sottosezione imparerai come sostituire una stringa con un'altra. Come al solito, iniziamo con la sintassi di Sostituire Metodo:

|_+_|

A differenza degli altri 2 metodi che richiedono di determinare indice iniziale , o contare , il Sostituire Il metodo no. Tutto ciò che serve per sostituire una stringa è specificare la stringa che si desidera sostituire, quindi specificare la nuova stringa.

Per illustrare con un esempio, torniamo al nostro file di testo. In questo esempio, voglio sostituire la stringa, sovrascrivere con write over...

Il terzo comando seguente farà il lavoro. Ho introdotto di nuovo i primi due comandi, così posso ottenere la versione aggiornata del file di testo nelle mie variabili.

Inoltre, l'ultimo comando di PowerShell scrive l'output aggiornato nello stesso file di testo...

|_+_|

Dopo aver eseguito i comandi, il file di testo verrà aggiornato. Guarda lo screenshot qui sotto...

Come utilizzare gli operatori di reindirizzamento di PowerShell per aggiungere un file di testo

Windows PowerShell ha un set di operatori di reindirizzamento . Puoi usare due di questi operatori di reindirizzamento per scrivere o aggiornare file di testo in PowerShell.

Sono consapevole del fatto che gli operatori di reindirizzamento non rientrano in questa sezione sulla scrittura in un file di testo con i metodi di PowerShell. Tuttavia, questa è l'unica sezione logica che posso includere in questo argomento.

Per creare un nuovo file di testo e scriverci sopra, utilizzare l'operatore di reindirizzamento >. Se usi questo operatore per scrivere il flusso di PowerShell in un file di testo, sovrascrive il contenuto del file di testo.

Tuttavia, se si desidera aggiornare un file di testo senza sovrascriverne il contenuto, utilizzare l'operatore di reindirizzamento >>.

Per illustrare come funzionano questi operatori, eseguire i seguenti comandi.

|_+_| |_+_|

Il primo comando crea un file di testo, E: eportRedirectExample.txt . Quindi, scrive il reindirizzamento nel file di testo.

Inoltre, il secondo comando aggiunge la riga di reindirizzamento 2 allo stesso file di testo. Ecco i comandi in PowerShell e uno screenshot del file di testo.

Come utilizzare gli operatori di reindirizzamento di PowerShell per aggiungere un file di testo

Esempi di PowerShell per la scrittura su file di testo

Esempi di PowerShell per la scrittura su file di testo

In quest'ultima sezione condividerò più esempi per scrivere in un file di testo in PowerShell. Negli esempi applicherò le competenze trattate nelle prime due sezioni di questa guida.

Come scrivere l'output di PowerShell in un file di testo e sovrascriverlo

Esistono tre modi per sovrascrivere il contenuto di un file di testo. In primo luogo, se esegui il Out-file comando senza il Aggiungere parametro, sovrascriverà il contenuto del file di testo.

Inoltre, puoi sovrascrivere il contenuto di un file di testo con l'estensione Imposta-Contenuto comando. Infine, puoi usare il > operatore di reindirizzamento per sovrascrivere il contenuto di un testo.

Per fare alcuni esempi, i comandi seguenti sovrascriveranno il contenuto del file di testo, E: eportoverwrite.txt :

|_+_|

Lo screenshot seguente mostra i comandi e il contenuto finale del file di testo.

Come scrivere l'output di PowerShell su un file di testo e una console

Se desideri scrivere un output di PowerShell in un file di testo e visualizzare l'output anche sulla console, puoi utilizzare uno di questi due cmdlet: Aggiungi contenuto o Imposta-Contenuto .

I due cmdlet hanno un parametro chiamato Passare attraverso . Se usi il Passare attraverso parametro, PowerShell scrive l'output nel percorso del file di testo specificato; quindi lo mostra anche alla console.

Tuttavia, il cmdlet che utilizzi dipende dal fatto che desideri aggiungere al file di testo o sovrascrivere il contenuto del file di testo. Per aggiungere al file di testo, utilizzare Aggiungi contenuto .

Tuttavia, se si intende sovrascrivere il contenuto del file di testo, utilizzare Imposta-Contenuto . Illustrerò con due esempi.

Per aggiungere la frase questo è aggiunto dal Aggiungi contenuto , nel file di testo specificato e visualizzare il messaggio sulla console, eseguire il comando seguente:

|_+_|

Lo screenshot seguente mostra il risultato del comando in PowerShell e l'output del file di testo.

Come scrivere l'output di PowerShell su un file di testo e una console

Al contrario, per sovrascrivere il contenuto del file di testo, e scrivere anche l'output sulla console, utilizzare il comando seguente...

|_+_|

Infine, ecco l'output del comando PowerShell visualizzato sulla console e scritto anche nel file di testo. Tuttavia, questa volta, ha sovrascritto il contenuto del file di testo.

Come scrivere l'output di PowerShell in un file di testo senza una nuova riga

Se esegui questo comando PowerShell, invece di scrivere l'output sulla stessa riga del file di testo, scrive le due stringhe, Victor e Ashiedu in due righe...

|_+_|

Tuttavia, se il tuo obiettivo è scrivere entrambe le stringhe sulla stessa riga, devi includere un Out-file Parametro cmdlet chiamato NoNewline .

|_+_|

Ora, il file di testo ha entrambe le stringhe sulla stessa riga! Tuttavia, non c'è spazio tra le due stringhe, che in questo caso sono il nome e il cognome di una persona.

Come scrivere l'output di PowerShell in un file di testo senza una nuova riga

Per includere uno spazio tra i due nomi, aggiungi uno spazio prima della seconda stringa, Ashiedu. Il comando seguente è lo stesso del comando precedente tranne che per lo spazio prima della seconda stringa.

|_+_|

Ecco ora il file di testo...

Se non vuoi sovrascrivere il file di testo, includi il file Aggiungere parametro nell'ultimo comando.

Come scrivere l'output di PowerShell in un file di testo con la codifica UTF 8

Il Out-file Il cmdlet ha un parametro chiamato Codifica . Quando scrivi l'output di PowerShell in un file di testo, puoi usare questo parametro per specificare la codifica del file.

Inoltre, se desideri modificare la codifica di un file di testo esistente, puoi reindirizzare l'output di Ottieni contenuto comando a Out-file .

Il Codifica il parametro supporta UTF8, ASCII, UTF32 e altro. È possibile specificare qualsiasi tipo di codifica.

Quindi, poiché questa sottosezione riguarda la scrittura dell'output di PowerShell in un file di testo con codifica UTF8, ecco alcuni esempi di comandi che possono raggiungere questo obiettivo...

|_+_| |_+_|

Il primo comando scrive l'output in un file di testo con codifica UTF8.

Inoltre, il secondo comando importa il contenuto di un file di testo in PowerShell con Ottieni contenuto . Quindi, scrive lo stesso contenuto in un altro file di testo con codifica UTF8.

Come correggere l'errore di accesso negato in scrittura su file di PowerShell

A volte, quando si tenta di scrivere l'output di PowerShell in un file di testo, è possibile che venga visualizzato un messaggio di errore di accesso negato. Questo errore può essere causato da più motivi.

Uno dei motivi per cui potresti ricevere un messaggio di errore di accesso negato è se tenti di scrivere su un file di testo aperto. Inoltre, se si tenta di scrivere in un file di testo utilizzato da un altro processo di Windows, è possibile che venga visualizzato un messaggio di errore di accesso negato.

Un altro motivo per cui potresti ricevere un errore di accesso negato è se tenti di creare un file di testo con un carattere non supportato. Ad esempio, se si tenta di creare un file di testo che includa un / nel nome, è possibile che venga visualizzato un messaggio di errore di accesso negato.

Infine, se un file di testo ha un attributo di sola lettura, riceverai anche il messaggio di errore di accesso negato.

Quindi, la soluzione per risolvere questo problema è identificare il motivo del messaggio di errore. Quindi, apporta le modifiche.

Nella prossima sottosezione, ti insegnerò come scrivere l'output di PowerShell in un file di testo con un attributo di sola lettura.

Come utilizzare PowerShell per scrivere in un file di testo di sola lettura

Se si tenta di scrivere l'output di PowerShell in un file di testo di sola lettura, verrà visualizzato un messaggio di errore di accesso negato. Per testare questo, ho abilitato l'attributo di sola lettura per uno dei file di testo che abbiamo creato in precedenza.

Come utilizzare PowerShell per scrivere in un file di testo di sola lettura

Ora, se provo a scrivere nel file di testo con il comando seguente, riceverò un messaggio di errore di accesso negato.

|_+_|

La buona notizia è che tutti i comandi di PowerShell che possono scrivere in un file di testo hanno un parametro chiamato Forza . Se includi questo comando in Out-file , Imposta-Contenuto , o Aggiungi contenuto , puoi scrivere in un file di testo di sola lettura.

Ad esempio, se modifichiamo l'ultimo comando come mostrato di seguito, il comando non restituirà alcun messaggio di errore.

|_+_|

Questa volta il comando ha esito positivo e il file di testo viene aggiornato!

Come utilizzare PowerShell per scrivere in un file di testo di sola lettura

Come scrivere l'output di PowerShell in un file di testo e creare una cartella se non esiste

Per impostazione predefinita, se corri Out-file , Imposta-Contenuto , o Aggiungi contenuto comandi e specificare un percorso per un file di testo che non esiste, il file verrà creato.

Tuttavia, se il percorso specificato include una cartella che non esiste, verrà visualizzato un messaggio di errore. Per testarlo, eseguirò il comando seguente che include una cartella, NoNewline – questa cartella non esiste nel percorso specificato...

|_+_|

Il comando restituisce un messaggio di errore.

Per risolvere questo problema, utilizzare il comando Test-Path per verificare se il percorso esiste. Quindi, se non esiste, utilizzare il Nuovo oggetto comando per crearlo prima di eseguire il Out-file comando.

Ecco lo script aggiornato. L'ultima riga è il comando più recente in questa guida...

|_+_| Il Forza parametro è ciò che forza Nuovo oggetto per creare tutte le cartelle che non esistono nel percorso.

Per eseguire lo script, copialo in un nuovo documento PowerShell ISE ed eseguilo. Prima di eseguire lo script, lo screenshot qui sotto mostra che la cartella non esiste...

Come scrivere l'output di PowerShell in un file di testo e creare una cartella se non esiste

Dopo aver eseguito lo script, la cartella ora esiste nel percorso...

Infine, se apri il NoNewline cartella, troverai il testo, nonnewline.txt .

Come utilizzare PowerShell Concatenate per scrivere in un file di testo

Puoi usare PowerShell per unire il contenuto di due file di testo in un unico file di testo. Il processo di unione di due file di testo in uno è chiamato concatenazione.

Per fare un esempio, ho creato due file, Processfile1.txt e Processfile2.txt . Allora, io uso Ottieni contenuto per concatenare i file.

Infine, convoglio il risultato di Ottieni contenuto a Imposta-Contenuto e scrivi i file uniti in un unico file. Ecco i comandi...

|_+_|

Come utilizzare PowerShell per scrivere l'output di data e ora in un file di testo

Ci sono così tanti casi in cui potresti aver bisogno di scrivere data e ora in un file di testo. Un esempio è se si desidera generare un registro degli errori.

Ad esempio, se usi uno script PowerShell per eseguire un'attività su un gruppo di server, è una buona idea creare un file di registro con i server a cui lo script non può connettersi. Questi file di registro possono quindi essere utilizzati per la risoluzione dei problemi.

Inoltre, quando crei tali file di registro, è anche una buona idea includere una data e un'ora. In questo modo, saprai quando lo script ha tentato di connettersi al server.

Basta con i discorsi! Lascia che ti mostri come scrivere data e ora su un file di testo con PowerShell. In questo esempio, ho un elenco di computer inesistenti su un file di testo.

Nello script seguente, utilizzo il Connessione di prova comando per eseguire il ping di un computer. Quindi, se il computer risponde, il mio script proverà a eseguire alcune attività sul computer remoto.

Tuttavia, se il Connessione di prova comando non riceve una risposta dal computer remoto, lo script genera un messaggio di errore con la data e l'ora correnti.

Infine, gli script scrivono i registri degli errori con la data e l'ora in un file di testo.

Ecco la sceneggiatura. Vedi sotto per una spiegazione dettagliata di ogni riga...

|_+_|

Per eseguire lo script, copialo in un nuovo documento PowerShell ISE, quindi esegui lo script. Quando ho eseguito lo script, ha creato un file chiamato mercoledì 02-06-2021.txt - data odierna.

Inoltre, ha creato le voci del file di testo, mercoledì 02-06-2021.txt – guarda lo screenshot qui sotto...

Per spiegare lo script, l'ho copiato di seguito. Ho anche aggiunto i numeri di riga per facilitarne la consultazione.

|_+_|

Ecco una ripartizione di questo script PowerShell apparentemente complesso:

  1. In Linea 1 , ho usato il Ottieni contenuto comando per importare il mio elenco di server in PowerShell. I server vengono salvati in un file di testo – Get-Content E: eportsITGServers.txt. Infine, ho salvato il risultato dell'elenco dei server in una variabile chiamata Server .
  2. Poi, dentro Linea 2 Ho creato il nome del file di testo che salverò i miei messaggi di errore. Ho usato il Get-Date comando per creare il file di testo.

    Nella riga 10, scriverò lo script di PowerShell che scrive i registri degli errori nel file di testo, ne parleremo più avanti. Infine, per poter utilizzare questo file più avanti nello script, l'ho salvato in una variabile chiamata nomefile di registro .
  3. La sceneggiatura continua Riga 3. In questa riga, introduco il Per ciascuno Metodo . Questo metodo mi consente di iterare il contenuto del file salvato in Server variabile.

    Ci sono due elementi importanti del Per ciascuno Metodo introdotto nella riga 3 – ( e {. La prima parentesi aperta, ( apre il Per ciascuno Metodo . Inoltre, la parentesi, { apre il Per ciascuno blocco di istruzioni di comando.
  4. Poi, dentro Riga 4 , eseguo il ping di ogni server salvato in Server variabile. Durante ogni ciclo del Per ciascuno blocco dell'iterazione, prende un nome del server da Server variabile: lo salva in una variabile automatica, $_, quindi utilizza il nome del server salvato in $_ come nome del computer nel test ping.

    Ancora una volta, per facilitare l'accesso al risultato del test ping, salvo il risultato in un'altra variabile chiamata PingTest . Il risultato del test ping sarà uno dei due Vero o Falso .
  5. In Riga 5 , introduco il blocco dell'istruzione IF. Poi, nel condizione parte del block(), per ogni server, verifico se il risultato del ping test, salvato nel file PingTest variabile è Vero o Falso .

    Inoltre, se il risultato del test ping è Vero , lo script di PowerShell esegue l'attività nel blocco comandi dell'istruzione IF. Il blocco comandi dell'istruzione IF si apre con una parentesi { nella riga 5.
  6. Poi, dentro Riga 6 , eseguo il comando nel blocco dell'istruzione IF. In Riga 7 , chiudo il blocco comandi dell'istruzione IF con una parentesi di chiusura, }.
  7. Riga 8introduce il Altro istruzione parte del blocco istruzioni IF. In questo blocco, eseguo il comando che voglio eseguire su tutti i server che hanno restituito False al test ping.
  8. In Riga 9 , lo script genera la data e l'ora correnti. Quindi salva il risultato in una variabile chiamata data e ora . Lo script utilizzerà questa variabile nella riga 10
  9. Poi, dentro Riga 10 , lo script di PowerShell scrive la data e l'ora correnti nel file di testo che ho creato nella riga 2. Il comando nella riga 9 è in 3 parti.

    Nella prima parte, lo script genera una parte del messaggio di errore. Questa parte include la variabile dateandtimestamp e alcuni spazi.

    Quindi nella parte del comando (il messaggio), lo script include un messaggio reale: il server, $_ è stato ignorato perché non ha risposto al ping. La variabile automatica, $_ è la stessa variabile generata da ForExch dichiarazione in Riga 4 .

    Infine, l'intero messaggio viene reindirizzato al comando Out-File: questo è in Riga 11 .
  10. Riga 12chiude il Altro blocco di comando dell'istruzione con una parentesi di chiusura, }.
  11. Poi, dentro Riga 13 , lo script chiude il Per ciascuno blocco comandi istruzione con un orologio una parentesi di chiusura, }.
  12. Infine, nel Riga 14 , lo script chiude il Per ciascuno Metodo con la parentesi di chiusura, ). Il Per ciascuno Metodo è stato aperto nella linea 3.

Usa PowerShell per scrivere su file di testo: domande frequenti

Usa Powershell per scrivere su file di testo: domande frequenti 1. Come si inviano i risultati di PowerShell a un file di testo?

Esistono 3 modi per inviare i risultati di PowerShell a un file di testo.

Innanzitutto, puoi utilizzare l'operatore > accanto al risultato che desideri inviare a un file di testo, seguito da uno spazio, quindi dal percorso completo del file di testo.

Inoltre, puoi utilizzare i cmdlet del comando Out-File. Per usare Out-File, pipe (|), l'output del risultato di PowerShell in Out-File seguito da uno spazio, quindi il percorso completo del file di testo.

Infine, puoi aggiungere i risultati di PowerShell a un file di testo esistente usando Aggiungi contenuto. L'uso è simile a Out-File spiegato in precedenza.

2. Come faccio a salvare un file di testo in PowerShell?

Puoi usare il Nuovo oggetto cmdlet per creare un nuovo file di testo in PowerShell. Per aggiungere elementi al file di testo e salvarlo automaticamente, utilizzare il Aggiungi contenuto cmdlet.

3. Come leggo un file in PowerShell?

Utilizzare il Ottieni contenuto cmdlet per leggere il contenuto di un file di testo in PowerShell. Ad esempio, per leggere il contenuto di D: ext.txt, utilizzare il comando Ottieni contenuto D: ext.txt

Come leggo un file in PowerShell

4. Come visualizzeresti il ​​valore memorizzato in una variabile nella console di PowerShell?

Immettere il nome della variabile in PowerShell e premere il tasto Invio. Il valore memorizzato nella variabile Powershell verrà visualizzato nella console. Ad esempio per visualizzare i valori memorizzati nel file $Contenuto variabile, inserisci semplicemente $ Console in PowerShell e premi il tasto Invio.

Come visualizzeresti il ​​valore memorizzato in una variabile nella console di PowerShell?

5. Come si aggiunge PowerShell?

Il modo più semplice per aggiungere in PowerShell è inserire i numeri separati dal segno di addizione (+), quindi premere il tasto Invio. Ad esempio, per aggiungere 2 e 5, immettere 2+5 , quindi premere invio. La risposta verrà visualizzata nella console.

Come si aggiunge PowerShell

Questo è tutto! La nostra guida aggiornata con esempi completi per scrivere l'output di PowerShell in un file di testo.

Spero che questa zona S ti sia stata utile. Se l'hai trovato utile, gentilmente vota Sì alla domanda era utile questo post di seguito.

In alternativa, puoi fare una domanda, lasciare un commento o fornire un feedback con il modulo Lascia un commento che si trova alla fine di questa pagina.

Infine, per altre zone di PowerShell S, visita la nostra pagina di istruzioni su Windows PowerShell. Potresti anche trovare molto utile la nostra pagina Lavoro dalla home.

Riferimenti e ulteriori letture

  1. Out-file
  2. Aggiungi contenuto
  3. Imposta-Contenuto
  4. Fuori Null
  5. Get-Date
  6. about_Reindirizzamento