Командлет «New-Item» создаёт новый элемент и устанавливает его значение. Типы элементов, которые могут быть созданы, зависят от местоположения элемента. Например, в файловой системе «New-Item» создаёт файлы и папки, в реестре «New-Item» создаёт ключи и записи реестра.
«New-Item» также может устанавливать значение элементов, которые он создаёт. Например, когда он создаёт новый файл, «New-Item» может добавить начальный контент в файл.
Кроме файлов и ключей реестра, New-Item может создавать символические ссылки, подробнее об этом сказано в статье «Создание жёстких и мягких ссылок с помощью PowerShell».
Создание файла в текущей директории
Создание файла с именем testfile1.txt и строкой внутри «Это текстовая строка в файле.» в текущей директории:
New-Item -Path . -Name "testfile1.txt" -ItemType "file" -Value "Это текстовая строка в файле."
Создание нескольких файлов:
New-Item -ItemType "file" -Path "c:\ps-test\test.txt", "c:\ps-test\Logs\test.log"
Создание директории
Создание директории в корне диска c: с именем «logfiles»:
New-Item -Path "c:\" -Name "logfiles" -ItemType "directory"
Создание директории в другой директории (в папке «c:\ps-test\» будет создана подпапка «scripts»):
New-Item -ItemType "directory" -Path "c:\ps-test\scripts"
Создание профиля
New-Item -Path $profile -ItemType "file" -Force
Использование подстановочных символов для создания файлов в нескольких директориях
Проверяем содержимое папки:
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» для проверки путей вновь создаваемых файлов.
Создание символической ссылки на файл или папку
$link = New-Item -ItemType SymbolicLink -Path .\link -Target .\Notice.txt $link | Select-Object LinkType, Target
Вывод:
LinkType Target -------- ------ SymbolicLink {.\Notice.txt}
В этом примере Target является псевдонимом для параметра Value. Цель символической ссылки может быть относительным путём. До PowerShell v6.2 цель должна быть полным путём.
Перезапись существующих папок
Использование параметра -Force в попытке пересоздать папки:
New-Item -Path .\TestFolder -ItemType Directory New-Item -Path .\TestFolder\TestFile.txt -ItemType File New-Item -Path .\TestFolder -ItemType Directory -Force
Вывод:
Directory: C:\ Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 5/1/2020 8:03 AM TestFolder
Проверка содержимого папки:
Get-ChildItem .\TestFolder\
Вывод:
Directory: C:\TestFolder Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 5/1/2020 8:03 AM 0 TestFile.txt
Использование параметра -Force для перезаписи существующих файлов
Создание файла:
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 для создания разделов реестра команда будет вести себя так же, как и при перезаписи файла. Если раздел реестра уже существует, ключ и все свойства и значения будут перезаписаны пустым разделом реестра.
Связанные статьи:
- Создание жёстких и мягких ссылок с помощью PowerShell (100%)
- Как включить удалённый рабочий стол RDP в Windows Server 2019 (55.6%)
- Как управлять службами в Windows (55.6%)
- Как в PowerShell узнать, какой процесс или программа блокируют файл (55.6%)
- Как переименовать файл или папку в PowerShell (55.6%)
- Как подключиться к другому компьютеру и видеть его экран по RDP (RANDOM - 52.6%)