Как создать файл в PowerShell — примеры использования New-Item

Командлет «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 для создания разделов реестра команда будет вести себя так же, как и при перезаписи файла. Если раздел реестра уже существует, ключ и все свойства и значения будут перезаписаны пустым разделом реестра.


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

wp-puzzle.com logo