Skip to main content This browser is no longer supported. Show
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support. New-Item
In this articleSyntaxNew-Item [-Path] <String[]> [-ItemType <String>] [-Value <Object>] [-Force] [-Credential <PSCredential>] [-WhatIf] [-Confirm] [<CommonParameters>]New-Item [[-Path] <String[]>] -Name <String> [-ItemType <String>] [-Value <Object>] [-Force] [-Credential <PSCredential>] [-WhatIf] [-Confirm] [<CommonParameters>]DescriptionThe New-Item cmdlet creates a new item and sets its value. The types of items that can be created depend on the location of the item. For example, in the file system, New-Item creates files and folders. In the registry, New-Item creates registry keys and entries. New-Item can also set the value of the items that it creates. For example, when it creates a new file, New-Item can add initial content to the file. ExamplesExample 1: Create a file in the current directoryThis command creates a text file that is named "testfile1.txt" in the current directory. The dot ('.') in the value of the Path parameter indicates the current directory. The quoted text that follows the Value parameter is added to the file as content. New-Item -Path . -Name "testfile1.txt" -ItemType "file" -Value "This is a text string."Example 2: Create a directoryThis command creates a directory named "Logfiles" in the C: drive. The ItemType parameter specifies that the new item is a directory, not a file or other file system object. New-Item -Path "c:\" -Name "logfiles" -ItemType "directory"Example 3: Create a profileThis command creates a PowerShell profile in the path that is specified by the $profile variable. You can use profiles to customize PowerShell. $profile is an automatic (built-in) variable that stores the path and file name of the "CurrentUser/CurrentHost" profile. By default, the profile does not exist, even though PowerShell stores a path and file name for it. In this command, the $profile variable represents the path of the file. ItemType parameter specifies that the command creates a file. The Force parameter lets you create a file in the profile path, even when the directories in the path do not exist. After you create a profile, you can enter aliases, functions, and scripts in the profile to customize your shell. For more information, see about_Automatic_Variables and about_Profiles. New-Item -Path $profile -ItemType "file" -ForceExample 4: Create a directory in a different directoryThis example creates a new Scripts directory in the "C:\PS-Test" directory. The name of the new directory item, "Scripts", is included in the value of Path parameter, instead of being specified in the value of Name. As indicated by the syntax, either command form is valid. New-Item -ItemType "directory" -Path "c:\ps-test\scripts"Example 5: Create multiple filesThis example creates files in two different directories. Because Path takes multiple strings, you can use it to create multiple items. New-Item -ItemType "file" -Path "c:\ps-test\test.txt", "c:\ps-test\Logs\test.log"Example 6: Use wildcards to create files in multiple directoriesThe New-Item cmdlet supports wildcards in the Path parameter. The following command creates a temp.txt file in all of the directories specified by the wildcards in the Path parameter. Get-ChildItem -Path C:\Temp\ Directory: C:\Temp Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 5/15/2019 6:45 AM 1 One d----- 5/15/2019 6:45 AM 1 Two d----- 5/15/2019 6:45 AM 1 Three New-Item -Path C:\Temp\* -Name temp.txt -ItemType File | Select-Object FullName FullName -------- C:\Temp\One\temp.txt C:\Temp\Three\temp.txt C:\Temp\Two\temp.txtThe Get-ChildItem cmdlet shows three directories under the C:\Temp directory. Using wildcards the New-Item cmdlet creates a temp.txt file in all of the directories under the current directory. The New-Item cmdlet outputs the items you created, which is piped to Select-Object to verify the paths of the newly created files. Example 7: Create a symbolic link to a file or folderThis example creates a symbolic link to the Notice.txt file in the current folder. $link = New-Item -ItemType SymbolicLink -Path .\link -Target .\Notice.txt $link | Select-Object LinkType, Target LinkType Target -------- ------ SymbolicLink {.\Notice.txt}In this example, Target is an alias for the Value parameter. The target of the symbolic link can be a relative path. Prior to PowerShell v6.2, the target must be a fully-qualified path. Beginning in PowerShell 7.1, you can now create to a SymbolicLink to a folder on Windows using a relative path. Example 8: Use the -Force parameter to attempt to recreate foldersThis example creates a folder with a file inside. Then, attempts to create the same folder using -Force. It will not overwrite the folder but simply return the existing folder object with the file created intact. PS> New-Item -Path .\TestFolder -ItemType Directory PS> New-Item -Path .\TestFolder\TestFile.txt -ItemType File PS> New-Item -Path .\TestFolder -ItemType Directory -Force Directory: C:\ Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 5/1/2020 8:03 AM TestFolder PS> Get-ChildItem .\TestFolder\ Directory: C:\TestFolder Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 5/1/2020 8:03 AM 0 TestFile.txtExample 9: Use the -Force parameter to overwrite existing filesThis example creates a file with a value and then recreates the file using -Force. This overwrites The existing file and it will lose it's content as you can see by the length property PS> New-Item ./TestFile.txt -ItemType File -Value 'This is just a test file' Directory: C:\Source\Test Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 5/1/2020 8:32 AM 24 TestFile.txt New-Item ./TestFile.txt -ItemType File -Force Directory: C:\Source\Test Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 5/1/2020 8:32 AM 0 TestFile.txtNote When using New-Item with the -Force switch to create registry keys, the command will behave the same as when overwriting a file. If the registry key already exists, the key and all properties and values will be overwritten with an empty registry key. ParametersPrompts you for confirmation before running the cmdlet.
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.
Forces this cmdlet to create an item that writes over an existing read-only item. Implementation varies from provider to provider. Even using the Force parameter, the cmdlet cannot override security restrictions.
Specifies the provider-specified type of the new item. The available values of this parameter depend on the current provider you are using. If your location is in a FileSystem drive, the following values are allowed:
Note Creating a SymbolicLink type on Windows requires elevation as administrator. However, Windows 10 (build 14972 or newer) with Developer Mode enabled no longer requires elevation creating symbolic links. In a Certificate drive, these are the values you can specify:
For more information see about_Providers.
Specifies the name of the new item. You can specify the name of the new item in the Name or Path parameter value, and you can specify the path of the new item in Name or Path value. Items names passed using the Name parameter are created relative to the value of the Path parameter.
Specifies the path of the location of the new item. The default is the current location when Path is omitted. You can specify the name of the new item in Name, or include it in Path. Items names passed using the Name parameter are created relative to the value of the Path parameter. For this cmdlet, the Path parameter works like the LiteralPath parameter of other cmdlets. Wildcard characters are not interpreted. All characters are passed to the location's provider. The provider may not support all characters. For example, you cannot create a filename that contains an asterisk (*) character.
Specifies the value of the new item. You can also pipe a value to New-Item.
Shows what would happen if the cmdlet runs. The cmdlet is not run.
InputsObject You can pipe a value for the new item to this cmdlet. OutputsObject This cmdlet returns the item that it creates. NotesNew-Item is designed to work with the data exposed by any provider. To list the providers available in your session, type Get-PsProvider. For more information, see about_Providers.
FeedbackSubmit and view feedback for Where is the read position when a file is first opened for reading?When a file is first opened for reading then by default the read position of the file will begin at the first character of the file.
When you open a file for writing if a file already exists the file will be destroyed?In place of mode you write one of the three modes - these are OUTPUT, APPEND, and INPUT. The OUTPUT mode permits Basic to write information to the file. If the file already exists, Basic will overwrite the old file with the new information, destroying all previous contents of the file.
When you work with an you access data from the beginning of the file to the end of the file?When working with a sequential access file, you access its data from the beginning of the file to the end of the file. A direct access file, on the other hand, allows you to access its data from any point within the file that you choose.
What is the purpose of opening a file Opening a file creates a connection between the file and the program?Opening a file creates a connection between the file and the program. It also creates an association between the file and a file object.
|