Cmdlet Set-Content di PowerShell

  1. il cmdlet Set-Content in PowerShell
  2. Usa il cmdlet Set-Content per Scrivere Contenuti Testuali in un Singolo File
  3. Usa il cmdlet Set-Content per Sostituire il Contenuto Testuale in Più File
  4. Usa Set-Content per Passare il Contenuto Testuale Tramite un PIPE
Cmdlet Set-Content di PowerShell

A volte, potremmo aver bisogno di scrivere lo stesso contenuto testuale in più file di testo. PowerShell fornisce un cmdlet utile per scrivere contenuti testuali tramite la riga di comando.

In questo articolo, ci concentreremo sul cmdlet Set-Content.

il cmdlet Set-Content in PowerShell

Il cmdlet Set-Content scrive nuovi contenuti testuali o sostituisce il testo esistente in un file. Questo è più simile all’operatore > in Linux.

Il cmdlet Set-Content differisce dal cmdlet di elaborazione delle stringhe Add-Content, che aggiunge testo a un file specificato. L’alias sc può essere utilizzato come alias per il comando Set-Content.

Sintassi:

Set-Content
[-Path_to_file] <string[]>
[-Value] <Object[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-NoNewline]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <string>]
[<CommonParameters>]

Il comando richiede un numero piuttosto elevato di argomenti, e lo scopo di alcuni è stato descritto nella sezione seguente.

Parametro Descrizione
-Path_to_file Puoi specificare un percorso di file di testo esistente o crearne uno nuovo nel percorso dato.
-Value Questo parametro è utilizzato per passare il contenuto testuale che scriverai.
-Force L’argomento -Force sostituisce il contenuto nel file di sola lettura.
-Encoding La codifica del file di destinazione è impostata su utf8NoBOM per impostazione predefinita.
-Exclude Gli elementi che devono essere esclusi in questa operazione sono specificati come un array di stringhe.
-Include Questo è l’opposto dell’argomento -Exclude. Questo argomento specifica un array di elementi che devono essere inclusi nell’operazione Set-Content.
-PassThru Quando l’argomento PassThru è specificato, il comando restituisce il contenuto testuale che è stato aggiunto al file di testo.

Di solito, il parametro -Value è utilizzato per specificare il contenuto testuale scritto nel file. Inoltre, puoi anche passare il contenuto testuale da un altro oggetto.

Se passi un oggetto non stringa al comando Set-Content, prima lo convertirà in una stringa e lo scriverà nel file.

Usa il cmdlet Set-Content per Scrivere Contenuti Testuali in un Singolo File

Scriviamo contenuti testuali in un file chiamato sometext.txt che attualmente non esiste. Quindi, il comando Set-Content creerà questo file per primo e scriverà il contenuto passato con l’argomento -Value.

Comando:

Set-Content -Path D:\codes\sometext.txt -Value "This should create a new file called sometext.txt and write this text to it..."

crea un file di testo e scrivi il contenuto comando

Output:

crea un file di testo e scrivi il contenuto dell&rsquo;output

Usa il cmdlet Set-Content per Sostituire il Contenuto Testuale in Più File

Supponiamo di avere tre file file1.txt, file2.txt, e file3.txt. Sostituiremo il contenuto in questi tre file con il seguente testo.

Hello, i would be appeared in all the three files!

In questo caso, il comando Set-Content utilizza caratteri jolly per abbinare i tre file dati.

Comando:

Set-Content -Path D:\codes\file*.txt -Value "Hello, i would be appeared in all the three files!"

Usa il Cmdlet Set-Content per sostituire il contenuto di testo in più file. {CODE_BLOCK_8}

I tre file corrispondono al modello specificato da file* txt, il che costringe il comando a corrispondere a tutti i file che iniziano con la frase file.

Output:

Usa il Cmdlet Set-Content per sostituire il contenuto di testo in più file di output

Usa Set-Content per Passare il Contenuto Testuale Tramite un PIPE

Non è necessario specificare sempre l’argomento -Value. Invece, possiamo PIPE un oggetto testuale al Set-Content come segue.

Comando:

(Get-Content D:\codes\file1.txt).replace('all the three files!', 'file4.txt') | Set-Content D:\codes\file4.txt

Il cmdlet Get-Content legge il contenuto testuale dal file file1.txt. Poi, utilizza il comando replace per sostituire il testo tutti e tre i file! con il file4.txt.

Infine, il testo costruito verrà scritto nel file file4.txt.

Output:

Usa Set-Content per passare il contenuto di testo attraverso un output PIPE.

Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.