Set-Content
Escreve ou substitui o conteúdo em um item.
Sintaxe
Set-Content [-LiteralPath] <string[]> [-Value] <Object[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]
Set-Content [-Path] <string[]> [-Value] <Object[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]
Descrição
Set-Content é um cmdlet de processamento de cadeia de caracteres ou substitui o conteúdo de um item especificado, como um arquivo. Enquanto o cmdlet Add-Content acrescenta conteúdo a um arquivo, Set-Content substitui o conteúdo existente. Você pode digitar o conteúdo no comando ou enviá-lo por meio do pipeline para Set-Content.
Parâmetros
-Credential <PSCredential>
Especifica uma conta de usuário com permissão para executar essa ação. O padrão é o usuário atual.
Digite um nome de usuário, como "User01" ou "Domain01\User01", ou insira um objeto PSCredential, como aquele gerado pelo cmdlet Get-Credential. Uma senha será solicitada após a digitação do nome do usuário.
Este parâmetro não tem suporte em nenhum dos provedores instalados com o Windows PowerShell.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByPropertyName) |
Aceitar caracteres curinga? |
false |
-Exclude <string[]>
Omite os itens especificados. O valor desse parâmetro qualifica o parâmetro Path. Digite um elemento ou padrão do caminho, como "*.txt". Os caracteres curinga são permitidos.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-Filter <string>
Especifica um filtro no formato ou no idioma do provedor. O valor desse parâmetro qualifica o parâmetro Path. A sintaxe do filtro, incluindo o uso dos caracteres curinga, depende do provedor. Os filtros são mais eficientes do que outros parâmetros porque o provedor os aplica durante a recuperação dos objetos, em vez de fazer com que o Windows PowerShell os filtre depois de recuperados.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-Force
Permite que o cmdlet defina o conteúdo de um arquivo, mesmo se ele for somente leitura. A implementação varia de provedor para provedor. Para obter mais informações, consulte about_Providers. Mesmo usando o parâmetro Force, o cmdlet não pode substituir as restrições de segurança.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-Include <string[]>
Altera somente os itens especificados. O valor desse parâmetro qualifica o parâmetro Path. Digite um elemento ou padrão do caminho, como "*.txt". Os caracteres curinga são permitidos.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-LiteralPath <string[]>
Especifica o caminho até o item que receberá o conteúdo. Ao contrário de Path, o valor de LiteralPath é usado exatamente como é digitado. Nenhum caractere será interpretado como curinga. Se o caminho incluir caracteres de escape, coloque-os entre aspas simples. As aspas simples dizem ao Windows PowerShell para não interpretar quaisquer caracteres que tenham sequências de escape.
Necessário? |
true |
Posição? |
1 |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByPropertyName) |
Aceitar caracteres curinga? |
false |
-PassThru
Retorna um objeto que representa o conteúdo. Por padrão, este cmdlet não gera nenhuma saída.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-Path <string[]>
Especifica o caminho até o item que receberá o conteúdo. Os caracteres curinga são permitidos.
Necessário? |
true |
Posição? |
1 |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByPropertyName) |
Aceitar caracteres curinga? |
false |
-Value <Object[]>
Especifica o novo conteúdo do item.
Necessário? |
true |
Posição? |
2 |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByValue, ByPropertyName) |
Aceitar caracteres curinga? |
false |
-Confirm
Solicita confirmação antes da execução do comando.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-WhatIf
Descreve o que aconteceria se você executasse o comando, sem executá-lo de fato.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-UseTransaction
Inclui o comando na transação ativa. Este parâmetro é válido apenas quando uma transação está em andamento. Para obter mais informações, consulte about_Transactions.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
<CommonParameters>
Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulte about_Commonparameters.
Entradas e saídas
O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.
Entradas |
System.Object É possível enviar um objeto que contém o novo valor do item para Set-Content. |
Saídas |
Nenhum ou System.String Quando você usa o parâmetro PassThru, Set-Content gerará um objeto System.String que representa o conteúdo. Caso contrário, esse cmdlet não gera nenhuma saída. |
Observações
Você também pode fazer referência a Set-Content usando seu alias interno, "sc". Para obter mais informações, consulte about_Aliases.
Set-Content foi desenvolvido para processamento de cadeias de caracteres. Caso você envie objetos diferentes de cadeias de caracteres para Set-Content, ele converterá o objeto em cadeia de caracteres antes de gravá-lo. Para gravar objetos em arquivos, use Out-File.
O cmdlet Set-Content foi desenvolvido para funcionar com os dados expostos por qualquer provedor. Para listar os provedores disponíveis em sua sessão, digite "Get-PsProvider". Para obter mais informações, consulte about_Providers.
Exemplo 1
C:\PS>set-content -path C:\Test1\test*.txt -value "Hello, World"
Descrição
-----------
Esse comando substitui o conteúdo de todos os arquivos do diretório Test1 com nomes que comecem com "test"por "Hello, World". Esse exemplo mostra como especificar o conteúdo digitando-o no comando.
Exemplo 2
C:\PS>get-date | set-content C:\Test1\date.csv
Descrição
-----------
Esse comando cria um arquivo de tamanho variável separado por vírgulas (csv) que contém somente a data e a hora atuais. Ele usa o cmdlet Get-Date para obter a data e hora atuais do sistema. O operador de pipeline transmite o resultado para Set-Content, que cria o arquivo e escreve o conteúdo.
Caso o diretório Test1 não exista, o comando falhará, mas se o arquivo não existir, será criado pelo comando.
Exemplo 3
C:\PS>(get-content Notice.txt) | foreach-object {$_ -replace "Warning", "Caution"} | set-content Notice.txt
Descrição
-----------
Esse comando substitui todas as instâncias de "Warning" por "Caution" no arquivo Notice.txt.
Ele usa o cmdlet Get-Content para obter o conteúdo de Notice.txt. O operador de pipeline envia os resultados para o cmdlet ForEach-Object, que aplica a expressão a todas as linhas de conteúdo em Get-Content. A expressão utiliza o símbolo "$_" para se referir ao item atual e o parâmetro Replace para especificar o texto a ser substituído.
Outro operador de pipeline envia o conteúdo alterado para Set-Content para que ele substitua o texto em Notice.txt pelo novo conteúdo.
Os parênteses em torno do comando Get-Content garantem que a operação Get seja concluída antes do início da operação Set. Sem eles, o comando falharia, pois as duas funções tentariam acessar o mesmo arquivo.