Поделиться через


New-Item

Создает новый элемент.

Синтаксис

New-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>]

Описание

Командлет New-Item создает новый элемент и задает его значение. Типы элементов, которые могут быть созданы, зависят от расположения элемента. Например, в файловой системе New-Item создает файлы и папки. В реестре New-Item создает разделы и записи реестра.

New-Item также может задать значение создаваемых элементов. Например, при создании нового файла New-Item может добавить в него начальное содержимое.

Примеры

Пример 1. Create файла в текущем каталоге

Эта команда создает текстовый файл с именем "testfile1.txt" в текущем каталоге. Точка ('.') в значении параметра Path указывает на текущий каталог. Текст в кавычках, следующий за параметром Value , добавляется в файл как содержимое.

New-Item -Path . -Name "testfile1.txt" -ItemType "file" -Value "This is a text string."

Пример 2. Create каталога

Эта команда создает каталог с именем Logfiles на C: диске. Параметр ItemType указывает, что новый элемент является каталогом, а не файлом или другим объектом файловой системы.

New-Item -Path "c:\" -Name "logfiles" -ItemType "directory"

Пример 3. Create профиля

Эта команда создает профиль PowerShell в пути, указанном в переменной $profile .

Профили можно использовать для настройки PowerShell. $profile — это автоматическая (встроенная) переменная, которая хранит путь и имя файла профиля CurrentUser/CurrentHost. По умолчанию профиль не существует, хотя PowerShell сохраняет для него путь и имя файла.

В этой команде $profile переменная представляет путь к файлу. Параметр ItemType указывает, что команда создает файл. Параметр Force позволяет создать файл по пути профиля, даже если каталоги в пути не существуют.

После создания профиля можно ввести псевдонимы, функции и скрипты в профиле, чтобы настроить оболочку.

Дополнительные сведения см. в разделе about_Automatic_Variables и about_Profiles.

New-Item -Path $profile -ItemType "file" -Force

Пример 4. Create каталога в другом каталоге

В этом примере создается новый каталог Scripts в каталоге C:\PS-Test.

Имя нового элемента каталога Scripts включается в значение параметра Path , а не указывается в значении Name. Как указывается в синтаксисе, любая форма команды допустима.

New-Item -ItemType "directory" -Path "c:\ps-test\scripts"

Пример 5. Create нескольких файлов

В этом примере создаются файлы в двух разных каталогах. Так как Path принимает несколько строк, его можно использовать для создания нескольких элементов.

New-Item -ItemType "file" -Path "c:\ps-test\test.txt", "c:\ps-test\Logs\test.log"

Пример 6. Использование подстановочных знаков для создания файлов в нескольких каталогах

Командлет New-Item поддерживает подстановочные знаки в параметре Path . Следующая команда создает temp.txt файл во всех каталогах, указанных подстановочными знаками в параметре Path .

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 * -Name temp.txt -ItemType File | Select-Object FullName

FullName
--------
C:\Temp\One\temp.txt
C:\Temp\Three\temp.txt
C:\Temp\Two\temp.txt

Командлет Get-ChildItem отображает три каталога в каталоге C:\Temp . Используя подстановочные знаки, New-Item командлет создает temp.txt файл во всех каталогах текущего каталога. Командлет New-Item выводит созданные элементы, которые передаются по Select-Object конвейеру для проверки путей к вновь созданным файлам.

Пример 7. Create символьной ссылки на файл или папку

В этом примере создается символьная ссылка на файл Notice.txt в текущей папке.

$link = New-Item -ItemType SymbolicLink -Path .\link -Target .\Notice.txt
$link | Select-Object LinkType, Target

LinkType     Target
--------     ------
SymbolicLink {.\Notice.txt}

В этом примере Target является псевдонимом для параметра Value . Целью символьной ссылки может быть относительный путь. До PowerShell версии 6.2 целевой объект должен быть полным путем.

Внимание!

При создании SymbolicLink для папки в Windows необходимо использовать полный путь. Если используется относительный путь, ссылка создается как ссылка типа файла, а не ссылка типа каталога.

Пример 8. Использование параметра -Force для попытки повторного создания папок

В этом примере создается папка с файлом внутри. Затем пытается создать ту же папку с помощью -Force. Он не перезапишет папку, а просто вернет существующий объект папки с созданным файлом без изменений.

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.txt

Пример 9. Использование параметра -Force для перезаписи существующих файлов

В этом примере создается файл со значением , а затем он повторно создается с помощью -Force. Это перезаписывает существующий файл и потеряет его содержимое, как видно по свойству length.

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.txt

Примечание

При использовании New-Item с параметром -Force для создания разделов реестра команда будет вести себя так же, как при перезаписи файла. Если раздел реестра уже существует, раздел и все свойства и значения будут перезаписаны пустым разделом реестра.

Параметры

-Confirm

Запрос подтверждения перед выполнением командлета.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Примечание

Этот параметр не поддерживается поставщиками, установленными с помощью PowerShell. Чтобы олицетворить другого пользователя или повысить уровень учетных данных при выполнении этого командлета, используйте Invoke-Command.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Force

Заставляет этот командлет создать элемент, который записывает существующий элемент, доступный только для чтения. Применение этого параметра зависит от конкретного поставщика. Даже с помощью параметра Force командлет не может переопределить ограничения безопасности.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ItemType

Указывает тип нового элемента, заданный поставщиком. Доступные значения этого параметра зависят от текущего поставщика, который вы используете.

Если ваше расположение находится на FileSystem диске, допустимы следующие значения:

  • Файл
  • Каталог
  • SymbolicLink
  • Соединение
  • HardLink

Примечание

Для создания типа в SymbolicLink Windows требуется повышение прав администратора. Однако Windows 10 (сборка 14972 или более позднюю версию) с включенным режимом разработчика больше не требует повышения прав, чтобы создавать символьные ссылки.

Certificate На диске можно указать следующие значения:

  • Поставщик Certificate
  • Сертификат
  • Магазин
  • StoreLocation

Дополнительные сведения см . в разделе about_Providers.

Type:String
Aliases:Type
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Name

Указывает имя нового элемента. Вы можете указать имя нового элемента в значении параметра Имя или Путь , а путь к новому элементу можно указать в поле Имя или Значение пути . Имена элементов, передаваемые с помощью параметра Name , создаются относительно значения параметра Path .

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Path

Указывает путь к расположению нового элемента. По умолчанию используется текущее расположение, если параметр Path опущен. Вы можете указать имя нового элемента в поле Имя или включить его в путь. Имена элементов, передаваемые с помощью параметра Name , создаются относительно значения параметра Path .

Для этого командлета параметр Path работает аналогично параметру LiteralPath других командлетов. Подстановочные знаки не интерпретируются. Все символы передаются поставщику расположения. Поставщик может поддерживать не все символы. Например, нельзя создать имя файла, содержащее символ звездочки (*).

Type:String[]
Position:0
Default value:Current location
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Value

Указывает значение нового элемента. Вы также можете передать значение по конвейеру в New-Item.

Type:Object
Aliases:Target
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Показывает, что произойдет при запуске командлета. Командлет не выполняется.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Входные данные

Object

Вы можете передать значение для нового элемента в этот командлет.

Выходные данные

Object

Этот командлет возвращает элемент, который он создает.

Примечания

New-Item предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы вывести список поставщиков, доступных в данном сеансе, введите командлет Get-PsProvider. Дополнительные сведения см. в разделе about_Providers.