Set-Content


Записать текст в файл
Параметры

  • -Path путь к файлу с возможностью указания подстановочных знаков

  • -LiteralPath дословный путь к файлу

  • -Encoding кодировка файла

    • ascii: Uses the encoding for the ASCII (7-bit) character set

    • bigendianunicode: Encodes in UTF-16 format using the big-endian byte order

    • bigendianutf32: Encodes in UTF-32 format using the big-endian byte order

    • oem: Uses the default encoding for MS-DOS and console programs

    • unicode: Encodes in UTF-16 format using the little-endian byte order

    • utf7: Encodes in UTF-7 format

    • utf8: Encodes in UTF-8 format

    • utf8BOM: Encodes in UTF-8 format with Byte Order Mark (BOM)

    • utf8NoBOM: Encodes in UTF-8 format without Byte Order Mark (BOM)

    • utf32: Encodes in UTF-32 format

Примеры

  • Записать текст в файл C:\file.txt.

    Wake up, Neo, select all

    Set-Content C:\file.txt "My Text"

полное описание
➡️➡️ ПЕРЕВОД ⬅️⬅️

Изображение


  • Set-Content

    SYNOPSIS

    Writes new content or replaces existing content in a file.

    SYNTAX

    Path (Default)

    Код: Выделить всё

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

    LiteralPath

    Код: Выделить всё

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

    DESCRIPTION

    Set-Content is a string-processing cmdlet that writes new content or replaces the content in a
    file. Set-Content replaces the existing content and differs from the Add-Content cmdlet that
    appends content to a file. To send content to Set-Content you can use the Value parameter on
    the command line or send content through the pipeline.

    If you need to create files or directories for the following examples, see New-Item.

    EXAMPLES

    Example 1: Replace the contents of multiple files in a directory

    This example replaces the content for multiple files in the current directory.

    Код: Выделить всё

    Get-ChildItem -Path .\Test*.txt

    Код: Выделить всё

    Test1.txt
    Test2.txt
    Test3.txt

    Код: Выделить всё

    Set-Content -Path .\Test*.txt -Value 'Hello, World'
    Get-Content -Path .\Test*.txt

    Код: Выделить всё

    Hello, World
    Hello, World
    Hello, World

    The Get-ChildItem cmdlet uses the Path parameter to list .txt files that begin with
    Test* in the current directory. The Set-Content cmdlet uses the Path parameter to specify
    the Test*.txt files. The Value parameter provides the text string Hello, World that
    replaces the existing content in each file. The Get-Content cmdlet uses the Path parameter to
    specify the Test*.txt files and displays each file's content in the PowerShell console.

    Example 2: Create a new file and write content

    This example creates a new file and writes the current date and time to the file.

    Код: Выделить всё

    Set-Content -Path .\DateTime.txt -Value (Get-Date)
    Get-Content -Path .\DateTime.txt

    Код: Выделить всё

    1/30/2019 09:55:08

    Set-Content uses the Path and Value parameters to create a new file named DateTime.txt
    in the current directory. The Value parameter uses Get-Date to get the current date and time.
    Set-Content writes the DateTime object to the file as a string. The Get-Content cmdlet uses
    the Path parameter to display the content of DateTime.txt in the PowerShell console.

    Example 3: Replace text in a file

    This command replaces all instances of word within an existing file.

    Код: Выделить всё

    Get-Content -Path .\Notice.txt

    Код: Выделить всё

    Warning
    Replace Warning with a new word.
    The word Warning was replaced.

    Код: Выделить всё

    (Get-Content -Path .\Notice.txt) |
        ForEach-Object {$_ -Replace 'Warning', 'Caution'} |
            Set-Content -Path .\Notice.txt
    Get-Content -Path .\Notice.txt

    Код: Выделить всё

    Caution
    Replace Caution with a new word.
    The word Caution was replaced.

    The Get-Content cmdlet uses the Path parameter to specify the Notice.txt file in the
    current directory. The Get-Content command is wrapped with parentheses so that the command
    finishes before being sent down the pipeline.

    The contents of the Notice.txt file are sent down the pipeline to the ForEach-Object cmdlet.
    ForEach-Object uses the automatic variable $_ and replaces each occurrence of Warning with
    Caution. The objects are sent down the pipeline to the Set-Content cmdlet. Set-Content uses
    the Path parameter to specify the Notice.txt file and writes the updated content to the
    file.

    The last Get-Content cmdlet displays the updated file content in the PowerShell console.

    Example 4: Use Filters with Set-Content

    You can specify a filter to the Set-Content cmdlet. When using filters to qualify the Path
    parameter, you need to include a trailing asterisk (*) to indicate the contents of the
    path.

    The following command set the content all *.txt files in the C:\Temp
    directory to the Value empty.

    Код: Выделить всё

    Set-Content -Path C:\Temp\* -Filter *.txt -Value "Empty"

    PARAMETERS

    -Credential

    [!NOTE]
    This parameter is not supported by any providers installed with PowerShell.
    To impersonate another user, or elevate your credentials when running this cmdlet,
    use Invoke-Command.

    Код: Выделить всё

    Type: System.Management.Automation.PSCredential
    Parameter Sets: (All)
    Aliases:
    
    Required: False
    Position: Named
    Default value: None
    Accept pipeline input: True (ByPropertyName)
    Accept wildcard characters: False

    -Encoding

    Specifies the type of encoding for the target file. The default value is Default.

    Encoding is a dynamic parameter that the FileSystem provider adds to Set-Content. This parameter
    works only in file system drives.

    The acceptable values for this parameter are as follows:

    • Ascii Uses ASCII (7-bit) character set.
    • BigEndianUnicode Uses UTF-16 with the big-endian byte order.
    • BigEndianUTF32 Uses UTF-32 with the big-endian byte order.
    • Byte Encodes a set of characters into a sequence of bytes.
    • Default Uses the encoding that corresponds to the system's active code page (usually ANSI).
    • Oem Uses the encoding that corresponds to the system's current OEM code page.
    • String Same as Unicode.
    • Unicode Uses UTF-16 with the little-endian byte order.
    • Unknown Same as Unicode.
    • UTF7 Uses UTF-7.
    • UTF8 Uses UTF-8.
    • UTF32 Uses UTF-32 with the little-endian byte order.

    Encoding is a dynamic parameter that the FileSystem provider adds to Set-Content. This parameter
    works only in file system drives.

    Код: Выделить всё

    Type: Microsoft.PowerShell.Commands.FileSystemCmdletProviderEncoding
    Parameter Sets: (All)
    Aliases:
    Accepted values: ASCII, BigEndianUnicode, BigEndianUTF32, Byte, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32
    
    Required: False
    Position: Named
    Default value: Default
    Accept pipeline input: False
    Accept wildcard characters: False

    -Exclude

    Specifies, as a string array, an item or items that this cmdlet excludes in the operation. The value
    of this parameter qualifies the Path parameter. Enter a path element or pattern, such as
    *.txt. Wildcard characters are permitted. The Exclude parameter is effective only when the
    command includes the contents of an item, such as C:\Windows\*, where the wildcard character
    specifies the contents of the C:\Windows directory.

    Код: Выделить всё

    Type: System.String[]
    Parameter Sets: (All)
    Aliases:
    
    Required: False
    Position: Named
    Default value: None
    Accept pipeline input: False
    Accept wildcard characters: True

    -Filter

    Specifies a filter to qualify the Path parameter. The FileSystem provider is the only installed PowerShell provider that supports the use of filters.
    Filters are more efficient than other parameters, because the provider applies them when the cmdlet
    gets the objects rather than having PowerShell filter the objects after they are retrieved.

    Код: Выделить всё

    Type: System.String
    Parameter Sets: (All)
    Aliases:
    
    Required: False
    Position: Named
    Default value: None
    Accept pipeline input: False
    Accept wildcard characters: True

    -Force

    Forces the cmdlet to set the contents of a file, even if the file is read-only. Implementation
    varies from provider to provider.
    The Force parameter does not override security restrictions.

    Код: Выделить всё

    Type: System.Management.Automation.SwitchParameter
    Parameter Sets: (All)
    Aliases:
    
    Required: False
    Position: Named
    Default value: None
    Accept pipeline input: False
    Accept wildcard characters: False

    -Include

    Specifies, as a string array, an item or items that this cmdlet includes in the operation. The value
    of this parameter qualifies the Path parameter. Enter a path element or pattern, such as
    "*.txt". Wildcard characters are permitted. The Include parameter is effective only when the
    command includes the contents of an item, such as C:\Windows\*, where the wildcard character
    specifies the contents of the C:\Windows directory.

    Код: Выделить всё

    Type: System.String[]
    Parameter Sets: (All)
    Aliases:
    
    Required: False
    Position: Named
    Default value: None
    Accept pipeline input: False
    Accept wildcard characters: True

    -LiteralPath

    Specifies a path to one or more locations. The value of LiteralPath is used exactly as it is
    typed. No characters are interpreted as wildcards. If the path includes escape characters, enclose
    it in single quotation marks. Single quotation marks tell PowerShell not to interpret any characters
    as escape sequences.

    Код: Выделить всё

    Type: System.String[]
    Parameter Sets: LiteralPath
    Aliases: PSPath
    
    Required: True
    Position: Named
    Default value: None
    Accept pipeline input: True (ByPropertyName)
    Accept wildcard characters: False

    -NoNewline

    The string representations of the input objects are concatenated to form the output. No spaces or
    newlines are inserted between the output strings. No newline is added after the last output string.

    Код: Выделить всё

    Type: System.Management.Automation.SwitchParameter
    Parameter Sets: (All)
    Aliases:
    
    Required: False
    Position: Named
    Default value: None
    Accept pipeline input: False
    Accept wildcard characters: False

    -PassThru

    Returns an object that represents the content. By default, this cmdlet does not generate any output.

    Код: Выделить всё

    Type: System.Management.Automation.SwitchParameter
    Parameter Sets: (All)
    Aliases:
    
    Required: False
    Position: Named
    Default value: None
    Accept pipeline input: False
    Accept wildcard characters: False

    -Path

    Specifies the path of the item that receives the content.
    Wildcard characters are permitted.

    Код: Выделить всё

    Type: System.String[]
    Parameter Sets: Path
    Aliases:
    
    Required: True
    Position: 0
    Default value: None
    Accept pipeline input: True (ByPropertyName)
    Accept wildcard characters: True

    -Stream

    Specifies an alternative data stream for content. If the stream does not exist, this cmdlet creates
    it. Wildcard characters are not supported.

    Stream is a dynamic parameter that the FileSystem provider adds to Set-Content. This
    parameter works only in file system drives.

    You can use the Set-Content cmdlet to change the content of the Zone.Identifier alternate data
    stream. However, we do not recommend this as a way to eliminate security checks that block files
    that are downloaded from the Internet. If you verify that a downloaded file is safe, use the
    Unblock-File cmdlet.

    This parameter was introduced in PowerShell 3.0.

    Код: Выделить всё

    Type: System.String
    Parameter Sets: (All)
    Aliases:
    
    Required: False
    Position: Named
    Default value: None
    Accept pipeline input: False
    Accept wildcard characters: False

    -UseTransaction

    Includes the command in the active transaction. This parameter is valid only when a transaction is
    in progress.

    Код: Выделить всё

    Type: System.Management.Automation.SwitchParameter
    Parameter Sets: (All)
    Aliases: usetx
    
    Required: False
    Position: Named
    Default value: False
    Accept pipeline input: False
    Accept wildcard characters: False

    -Value

    Specifies the new content for the item.

    Код: Выделить всё

    Type: System.Object[]
    Parameter Sets: (All)
    Aliases:
    
    Required: True
    Position: 1
    Default value: None
    Accept pipeline input: True (ByPropertyName, ByValue)
    Accept wildcard characters: False

    -Confirm

    Prompts you for confirmation before running the cmdlet.

    Код: Выделить всё

    Type: System.Management.Automation.SwitchParameter
    Parameter Sets: (All)
    Aliases: cf
    
    Required: False
    Position: Named
    Default value: False
    Accept pipeline input: False
    Accept wildcard characters: False

    -WhatIf

    Shows what would happen if the cmdlet runs. The cmdlet is not run.

    Код: Выделить всё

    Type: System.Management.Automation.SwitchParameter
    Parameter Sets: (All)
    Aliases: wi
    
    Required: False
    Position: Named
    Default value: False
    Accept pipeline input: False
    Accept wildcard characters: False

    CommonParameters

    This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable,
    -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable,
    -Verbose, -WarningAction, and -WarningVariable.

    INPUTS

    System.Object

    You can pipe an object that contains the new value for the item to Set-Content.

    OUTPUTS

    None or System.String

    When you use the PassThru parameter, Set-Content generates a System.String object that
    represents the content. Otherwise, this cmdlet does not generate any output.

    NOTES

    • You can also refer to Set-Content by its built-in alias, sc.
    • Set-Content is designed for string processing. If you pipe non-string objects to Set-Content,
      it converts the object to a string before writing it. To write objects to files, use Out-File.
    • The Set-Content cmdlet is designed to work with the data exposed by any provider. To list the
      providers available in your session, type Get-PsProvider.