Как создать файл в powershell windows

Командлет «New-Item» создаёт новый элемент и устанавливает его значение. Типы элементов, которые могут быть созданы, зависят от местоположения элемента. Например, в файловой системе «New-Item» создаёт файлы и папки, в реестре «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-testtest.txt", "c:ps-testLogstest.log"

Создание директории

Создание директории в корне диска c: с именем «logfiles»:

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

Создание директории в другой директории (в папке «c:ps-test» будет создана подпапка «scripts»):

New-Item -ItemType "directory" -Path "c:ps-testscripts"

Создание профиля

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:TempOnetemp.txt
    C:TempThreetemp.txt
    C:TempTwotemp.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 .TestFolderTestFile.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:SourceTest
    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    -a----         5/1/2020   8:32 AM             24 TestFile.txt

Команда для перезаписи:

New-Item ./TestFile.txt -ItemType File -Force

Вывод:

        Directory: C:SourceTest
    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%)
  • Масштабирование и панорамирование видео в ActivePresenter (RANDOM — 50%)

Для работы с файлами в Powershell есть около 10 команд. С помощью команды New-Item можно создать файл или папку в Powershell, жесткую и мягкую ссылку. Copy-Item и Move-Item выполняют копирование и перемещение объектов. В этой стать мы рассмотрим все эти операции, а так же удаление директорий и файлов включая сетевые пути, на примерах.

Создание файлов

В следующем примере мы создадим файл с расширением ‘.txt’:

New-Item file.txt

Создание файлов в Powershell New-Item

По умолчанию файл создается в той директории откуда был запущен сам Powershell. Изменить путь создания файла можно указав путь в Path:

New-Item -Path 'C:file.txt'

Создание файлов по пути с Powershell New-Item

Каждая папка так же является файлом, но для ее создания в Powershell нужно указывать тип ‘Directory’ в ‘ItemType’:

New-Item -Path 'C:Dir' -ItemType Directory

Создание каталогов с Powershell New-Item

Создание со вложенными директориями

Мы можем создать множество папок не указывая дополнительных параметров:

New-Item -Path 'C:Dir1Dir2Dir3' -ItemType Directory

Если мы захотим создать директорию и файл, то получим ошибку:

New-Item -Path 'C:Dir1Dir2Dir3file.txt'
  •  New-Item : Could not find a part of the path

Исправить эту ошибку можно указав параметр Force, который создаст весь путь целиком:

New-Item -Path 'C:Dir1Dir2Dir3file.txt' -Force

Создание вложенных папок с Powershell New-Item

Перезапись

Ключ Force не только создает родительские объекты в виде папок, но и перезаписывает файлы. Если не указан параметр Force, а файл или папка уже существует — вы получите ошибки:

  • New-Item : The file ‘C:Dir1Dir2Dir3file.txt’ already exists.
  • New-Item : An item with the specified name C:Dir1Dir2Dir3 already exists.

Указывая Force — файлы перезаписываются удаляя все содержимое. В случае с папками ничего удалено не будет.

New-Item -Path 'C:Dir1Dir2Dir3file.txt' -Force

Перезапись файлов с Powershell New-Item

Запись данных

Еще один из способа перезаписи файлов в Powershell — использование символа перенаправления вывода ‘>’. Если объект уже существует — он будет перезаписан, иначе будет создан новый файл:

'test' > file.txt
Get-Content .file.txt

Запись в файл с Powershell New-Item

Почти такой же результат будет если добавить в команду параметр Value. Результат следующего примера будет аналогичен предыдущему:

New-Item -Path 'C:file.txt' -Value 'test'
Get-Content 'C:file.txt'

Запись в файл с Powershell New-Item

Мягкие и жесткие ссылки

Кроме файлов и директорий в ItemType можно указать следующие типы ссылок:

  • SymbolicLink (мягкая ссылка) — обычный ярлык на папку или директорию;
  • Junction — старый тип ссылок (до Windows Vista);
  • HardLink (жесткая ссылка) — ссылка на объект в файловой системе. Не работает с директориями.

Каждый файл можно представить как ссылку на объект файловой системы. Ярлык устанавливает связь с именем файла (ссылка на ссылку). При переименовании оригинального файла или его удалении ярлык перестает работать.

Жесткая ссылка работает иначе. Она ссылается на объект файловой системы, а не на имя. Поэтому при удалении или переименовании оригинального файла эта связь не потеряется. Такие ссылки можно представить как копии оригинальных фалов, но которые не занимают дополнительное место на диске. Жесткие ссылки работают в рамках одного раздела и их нельзя использовать на каталогах. Сам объект файловой системы (файл) будет существовать до последней такой ссылки.

В следующем примере я создаю жесткую ссылку, где ‘old_file.txt’ — имя существующего файла, а ‘new_link.txt’ — имя нового:

New-Item -Path 'C:new_link.txt' -ItemType HardLink -Value 'C:old_file.txt'

Создание жестких ссылок с Powershell New-Item 

Создание множества файлов и директорий

Параметр Path может принимать несколько значений. Это значит, что одной командой мы можем создать несколько объектов:

New-Item -Path 'C:doc.ini','C:data.ini'

Создание нескольких файлов с Powershell New-Item

Можно использовать сочетания директорий и файлов, добавляя ключ Force тем самым избегая ошибок.

Копирование и перемещение папок и файлов

В следующем примере, с помощью Powershell, будет скопирован файл ‘C:data.txt’ в директорию ‘C:Catalog’:

Copy-Item -Path 'C:data.ini' -Destination 'C:Catalog'

Перемещение объектов выполняется так же, но с использованием Move-Item:

Move-Item -Path 'C:data.ini' -Destination 'C:Catalog'

Если в перемещаемой папке уже существует файл с этим именем, то мы получим ошибку:

  • Move-Item : Cannot create a file when that file already exists

Для исправления этой ситуации можно использовать параметр Force или перемещать файл под другим именем. Новое имя можно указать в Destination:

Move-Item -Path 'C:oldname.ini' -Destination 'C:Catalognewname.ini'

Каталоги переносятся и копируются так же. Знак » в конце Destination говорит, что мы хотим перенести папку внутрь указанной. Отсутствие знака » говорит, что это новое имя директории:

Copy-Item -Path 'C:folder' -Destination 'C:folder2'

Path — принимает список, а это значит, что мы можем указывать несколько значений через запятую.

Использование масок для копирования и перемещения

Во многих командах Powershell доступны следующие специальные символы:

  • * — говорит, что в этом месте есть неизвестное количество неизвестных символов;
  • ? — в этом месте есть один неизвестный символ;
  • [A,B,C] — в этом месте есть одна из следующих букв A,B,C.

Например так мы скопируем все объекты с расширением ‘txt’ из одной папки в другую:

Copy-Item -Path 'D:*.txt' -Destination 'D:Catalog'

Перемещение сработает так же.

Предыдущий вариант сработает, если мы ищем файлы в текущей директории. Для копирования в Powershell внутри всех вложенных каталогов нужно использовать рекурсивный поиск, который доступен только в Copy-Item. Рекурсивный поиск устанавливается ключом Recurse. В следующем примере будет найден и скопирован файл hosts. В качестве * я указал один из элементов неизвестного пути:

Copy-Item -Path 'D:WindowsSystem32drivers*host[a,s]' -Destination 'D:Catalog' -Recurse

Копирование файлов с Powershell Copy-Item

Дополнительные параметры фильтрации

Если предыдущих примеров, где мы находили файлы с неизвестным название, не достаточно, то можно использовать дополнительные параметры. Они доступны в обеих командах Copy-Item и Move-Item:

  • Include — включает объекты с этим упоминанием;
  • Exclude — работает аналогично предыдущему, но исключает объекты;
  • Filter — включает объекты указанные в этом параметре.

Я не вижу смысла использовать все параметры описанные выше в одной команде, но в них есть отличия. Filter будет работать быстрее, так как он работает и фильтрует данные в момент их получения. Include и Exclude сработают после получения всех файлов, но каждое значение для них можно указывать через запятую. Для Include и Exclude так же важно указывать Path с ‘*’ в конце, например ‘C:dir*’.

Например мы хотим скопировать все объекты с расширением ‘txt’ и ‘jpg’. Это можно сделать так:

Copy-Item -Path 'D:*' -Include '*.txt','*.jpg' -Destination 'D:Catalog'

Копирование множества файлов с Powershell Copy-Item

Я бы не рекомендовал использовать Filter в обеих командах. Более удобный способ — это искать файлы с Get-ChildItem, а затем их копировать и перемещать в нужное место. В следующем примере будут перенесены все объекты формата ‘.txt’ и ‘.jpg’ в каталог Directory:

# Копирование
Get-ChildItem 'D:Home*' -Include '*.txt','*.jpg' -Recurse | Copy-Item -Destination 'D:Catalog'
# Перенос
Get-ChildItem 'D:Home*' -Include '*.txt','*.jpg' -Recurse | Move-Item -Destination 'D:Catalog'

Переименование файлов и директорий

Для переименовывания в Powershell используется Rename-Item. В следующем примере мы укажем новое имя в параметре NewName:

Rename-Item -Path 'D:SomeData.ini' -NewName 'NewData.ini'

В NewName можно указать путь, но он должен соответствовать источнику. При следующем написании будет ошибка:

Rename-Item 'D:SomeData.ini' -NewName 'D:SomePathNewData.ini'
  • Rename-Item : Cannot rename the specified target, because it represents a path or device name.

Для массового переименовывания объектов можно использовать конвейер с ‘Get-ChildItem’. Например нам нужно поменять расширения файлов с ».jpg» на «.png» — это можно сделать так:

Get-ChildItem -Path 'D:pictures*' -Include '*.jpg' | 
Rename-Item -NewName {$PSItem.Name -replace '.jpg','.png'}

Переименовывание файлов с Powershell Rename-Item

Удаление

В следующем примере мы удалим файл:

Remove-Item -Path 'C:pictures1.png'

Пустые каталоги в Powershell удаляются так же. Если в папке находятся другие файлы будет запрошено разрешение на удаление. 

Remove-Item 'C:pictures'

Удаление файлов с Powershell Remove-Item

Избежать таких вопросов можно использовав рекурсию в виде параметра Recurse:

Remove-Item -Path 'C:pictures' -Recurse

Если нужно удалить все файлы внутри каталога, то нужно добавить знак ‘*’. Если внутри каталога будут находится другие папки с файлами, то запросится подтверждение:

Remove-Item 'C:pictures*'

У команды есть параметры, описанные ранее, в виде:

  • Include
  • Exclude
  • Filter

Работа с сетевыми папками и SMB

Для копирования и переноса данных по сети нужно использовать следующий формат:

'\serverfolderfile'

Он сработает со всеми командами, как для источника так и для назначения:

# Копирования
Copy-Item -Path '\localhostC$*.txt' -Destination '\localhostC$NewCatalog'
# Перенос
Move-Item -Path '\localhostC$*.txt' -Destination '\localhostC$NewCatalog'

Выполнение команд под другим пользователем

Любая команда выполняется от имени пользователя, который открыл консоль Powershell. Хоть в командах и присутствует параметр ‘Credential’, но при его использовании вы будете получать ошибку:

  • The FileSystem provider supports credentials only on the New-PSDrive cmdlet. Perform the operation again without specifying credentials.

Есть несколько способов обойти эти ограничения использовав методы WMI и CIM. В Powershell так же доступен сервис PSRemoting, который создан для выполнения задач удаленно. Мы можем использовать две команды:

  • New-PSItem — подключение к компьютеру и дальнейшая работы с ним;
  • Invoke-Command — одноразовое выполнение команды.

Этот сервис может не работать по умолчанию и нуждаться в дополнительных настройках. Этот процесс был описан в другой статье.

В следующем примере будет объявлена переменная в которой будет храниться логин и пароль нужной учетной записи:

$credential = Get-Credential

Запрос учетных данных пользователя Powershell Get-Credential

После заполнения этой переменной нужно будет передать ее в параметр Credential. Примеры по работе с файлами удаленно от другого пользователя:

# Переменная, которая хранит нужного пользователя
$credential = Get-Credential

# Удаленное копирование от другого пользователя
Invoke-Command -ComputerName 'localhost' -Credential $credential -ScriptBlock {
   Copy-Item -Path 'C:*.txt' -Destination 'C:new_directory' -Force
}

# Удаленное создание объекта
Invoke-Command -ComputerName 'localhost' -Credential $credential -ScriptBlock {
   New-Item -Path 'C:SomeData.txt'
}

Удаленное создание файлов и директорий в Powershell 

Теги:

#powershell

description ms.date title

This article discusses how to deal with specific file and folder manipulation tasks using PowerShell.

12/08/2022

Working with files and folders

Navigating through PowerShell drives and manipulating the items on them is similar to manipulating
files and folders on Windows disk drives. This article discusses how to deal with specific file and
folder manipulation tasks using PowerShell.

Listing all files and folders within a folder

You can get all items directly within a folder using Get-ChildItem. Add the optional Force
parameter to display hidden or system items. For example, this command displays the direct contents
of PowerShell Drive C:.

Get-ChildItem -Path C: -Force

The command lists only the directly contained items, much like using the dir command in cmd.exe
or ls in a UNIX shell. To show items in subfolder, you need to specify the Recurse parameter.
The following command lists everything on the C: drive:

Get-ChildItem -Path C: -Force -Recurse

Get-ChildItem can filter items with its Path, Filter, Include, and Exclude
parameters, but those are typically based only on name. You can perform complex filtering based on
other properties of items using Where-Object.

The following command finds all executables within the Program Files folder that were last modified
after October 1, 2005 and that are neither smaller than 1 megabyte nor larger than 10 megabytes:

Get-ChildItem -Path $env:ProgramFiles -Recurse -Include *.exe |
    Where-Object -FilterScript {
        ($_.LastWriteTime -gt '2005-10-01') -and ($_.Length -ge 1mb) -and ($_.Length -le 10mb)
    }

Copying files and folders

Copying is done with Copy-Item. The following command backs up C:boot.ini to C:boot.bak:

Copy-Item -Path C:boot.ini -Destination C:boot.bak

If the destination file already exists, the copy attempt fails. To overwrite a pre-existing
destination, use the Force parameter:

Copy-Item -Path C:boot.ini -Destination C:boot.bak -Force

This command works even when the destination is read-only.

Folder copying works the same way. This command copies the folder C:temptest1 to the new folder
C:tempDeleteMe recursively:

Copy-Item C:temptest1 -Recurse C:tempDeleteMe

You can also copy a selection of items. The following command copies all .txt files contained
anywhere in C:data to C:temptext:

Copy-Item -Filter *.txt -Path c:data -Recurse -Destination C:temptext

You can still use other tools to perform file system copies. XCOPY, ROBOCOPY, and COM objects, such
as the Scripting.FileSystemObject, all work in PowerShell. For example, you can use the Windows
Script Host Scripting.FileSystem COM class to back up C:boot.ini to C:boot.bak:

(New-Object -ComObject Scripting.FileSystemObject).CopyFile('C:boot.ini', 'C:boot.bak')

Creating files and folders

Creating new items works the same on all PowerShell providers. If a PowerShell provider has more
than one type of item—for example, the FileSystem PowerShell provider distinguishes between
directories and files—you need to specify the item type.

This command creates a new folder C:tempNew Folder:

New-Item -Path 'C:tempNew Folder' -ItemType Directory

This command creates a new empty file C:tempNew Folderfile.txt

New-Item -Path 'C:tempNew Folderfile.txt' -ItemType File

[!IMPORTANT]
When using the Force switch with the New-Item command to create a folder, and the folder
already exists, it won’t overwrite or replace the folder. It will simply return the existing
folder object. However, if you use New-Item -Force on a file that already exists, the file
is overwritten.

Removing all files and folders within a folder

You can remove contained items using Remove-Item, but you will be prompted to confirm the
removal if the item contains anything else. For example, if you attempt to delete the folder
C:tempDeleteMe that contains other items, PowerShell prompts you for confirmation before
deleting the folder:

Remove-Item -Path C:tempDeleteMe

Confirm
The item at C:tempDeleteMe has children and the Recurse parameter wasn't
specified. If you continue, all children will be removed with the item. Are you
sure you want to continue?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "Y"):

If you don’t want to be prompted for each contained item, specify the Recurse parameter:

Remove-Item -Path C:tempDeleteMe -Recurse

Mapping a local folder as a drive

You can also map a local folder, using the New-PSDrive command. The following command creates a
local drive P: rooted in the local Program Files directory, visible only from the PowerShell
session:

New-PSDrive -Name P -Root $env:ProgramFiles -PSProvider FileSystem

Just as with network drives, drives mapped within PowerShell are immediately visible to the
PowerShell shell. To create a mapped drive visible from File Explorer, use the Persist
parameter. However, only remote paths can be used with Persist.

Reading a text file into an array

One of the more common storage formats for text data is in a file with separate lines treated as
distinct data elements. The Get-Content cmdlet can be used to read an entire file in one step,
as shown here:

PS> Get-Content -Path C:boot.ini
[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Microsoft Windows XP Professional"
 /noexecute=AlwaysOff /fastdetect
multi(0)disk(0)rdisk(0)partition(1)WINDOWS=" Microsoft Windows XP Professional
with Data Execution Prevention" /noexecute=optin /fastdetect

Get-Content treats the data read from the file as an array, with one element per line of file
content. You can confirm this by checking the Length of the returned content:

PS> (Get-Content -Path C:boot.ini).Length
6

This command is most useful for getting lists of information into PowerShell. For example, you might
store a list of computer names or IP addresses in the file C:tempdomainMembers.txt, with one
name on each line of the file. You can use Get-Content to retrieve the file contents and put them
in the variable $Computers:

$Computers = Get-Content -Path C:tempDomainMembers.txt

$Computers is now an array containing a computer name in each element.

PowerShell — это оболочка или язык сценариев, разработанный Microsoft для автоматизации различных задач; например, администраторы используют этот инструмент для автоматизации административных задач. Более того, как язык, он используется для разработки и развертывания решений в гибких средах, непрерывной интеграции и непрерывном развертывании. В дистрибутивах на основе Linux сопоставимой оболочкой является Bash; и большинство команд Bash выполняются в PowerShell. Командная строка Windows (CMD) — это оболочка Windows по умолчанию, но теперь в последних сборках Windows 10 оболочка по умолчанию заменена на PowerShell.

PowerShell можно использовать для выполнения различных операций Windows, таких как создание папок, каталогов. Точно так же с текстовыми файлами можно работать с помощью PowerShell; мы можем редактировать текстовые файлы, чтобы добавлять или удалять содержимое из текстовых файлов.

Мы продемонстрируем различные способы создания и редактирования текстовых файлов с помощью PowerShell:

Как создавать и редактировать файлы с помощью PowerShell

Следующие шаги позволят вам создавать текстовые файлы с помощью PowerShell; кроме того, в этом разделе также рассматриваются различные способы редактирования текстовых файлов.

Шаг 1. Как создать текстовый файл с помощью PowerShell

При создании нового текстового файла в PowerShell следует учитывать две возможности:

Возможность 1: Создайте текстовый файл в текущем рабочем каталоге (PWD): для этого выполните следующую команду, чтобы создать новый файл: в приведенном ниже порядке будет создан текстовый файл с именем «file1”В текущем каталоге:

> Новый элемент file1.txt

Возможность 2: Если вы хотите получить новый файл в другой папке, вы должны указать полный путь; и убедитесь, что целевой каталог существует; В противном случае вы не сможете вносить изменения в неизвестный каталог или диск. Приведенная ниже команда создаст новый текстовый файл «файл2«В целевом каталоге диска»E“.

> Новый элемент E: MS file2.txt

После того, как вы создали текстовый файл, вы готовы перейти к шагу 2.

Шаг 2: Как писать внутри текстовых файлов с помощью PowerShell

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

Замена данных: Если вы хотите заменить существующее содержимое текстового файла новым, вы должны пойти на Способ 1.

Добавление содержимого: Однако, если вы хотите добавить несколько строк к существующему содержимому, вы должны следовать Способ 2.

Использование редактора nano для редактирования текстовых файлов в PowerShell: Если вы хотите добавить или удалить содержимое текстового файла несколько раз, рекомендуется учитывать Способ 3.

Способ 1:Замена данных
Прежде чем приступить к настройке содержимого, сначала; прочтите файл, используя следующую команду:

> Get-Content file1.txt

После выполнения результат показан ниже:

Если вы хотите написать в текстовом файле, выполните приведенную ниже команду, чтобы заменить текст в file1:

> Set-Content file1.txt ‘Привет, содержимое успешно заменено’

После успешного выполнения вашей команды прочтите содержимое вашего файла, чтобы проверить, был ли текст заменен или нет. Приведенная ниже команда распечатает содержимое «file1.txt

> Get-Content file1.txt

Вы заметите, что текст был заменен:

Метод 2: добавление содержимого
В отличие от первого метода, второй метод добавит содержимое к существующим данным в файле; предыдущее содержимое также будет доступно в файле:

Чтобы добавить текст, выполните следующую команду: команда, приведенная ниже, добавит текст, записанный в одинарных кавычках, в file1.txt.

> Add-content file1.txt ‘вы добавили текст’

После выполнения вышеуказанной команды проверьте, добавлен ли текст; для этого выполните следующую команду, чтобы проверить. Вы обнаружите, что строка, записанная в одинарных кавычках, теперь добавляется как новая строка в file1.txt.

> Get-Content file1.txt

Метод 3: использование редактора nano для редактирования текстовых файлов в PowerShell
Другой способ внести изменения в текстовые файлы — использовать значок «нано»Редактор в PowerShell:

Значок «нано»Редактор недоступен для доступа в PowerShell; вы должны установить пакет. Перед этой установкой вы должны убедиться, что используете PowerShell с правами администратора; в противном случае установка не будет успешной. После запуска PowerShell от имени администратора; вы можете продолжить дальше:

Во-первых, вы должны установить «шоколадный» упаковка; «шоколадный»Поддерживает редактор nano. Итак, необходимо установить его перед добавлением редактора nano, и вы можете установить его с помощью команды, приведенной ниже:

> Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System. Сеть. WebClient) .DownloadString (‘ https://chocolatey.org/install.ps1’))

После успешной установки «шоколад» упаковка; теперь установите «нано»С помощью команды, приведенной ниже:

> choco install nano

Во время установки будет предложено нажать «Y”, Чтобы продолжить установку:

После успешного выполнения вышеуказанных команд перезапустите PowerShell:

После этого откройте целевой каталог вашего текстового файла в PowerShell: как только вы дойдете до каталога; проверьте наличие текстового файла; для этого выполните в PowerShell следующую команду:

> ls

После этого вы можете редактировать текстовый файл с помощью кнопки «нано»С помощью команды, приведенной ниже.

> нано файл1.txt

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

Редактор Nano позволяет редактировать, удалять и добавлять текст так же, как и другие текстовые редакторы. Например, если вы хотите добавить текст, начните писать после существующего текста. После добавления нажмите «Ctrl + X»Выйти из редактора; после этого действия нажмите «Y», Чтобы сохранить изменения, или нажмите«N», Чтобы отменить изменения. Более того, вы можете удалить существующий контент и сохранить изменения, как описано выше.

Управление файлами — важная часть повседневной работы. Вам нужно будет управлять доступом к общим папкам, регулярно выполнять их резервное копирование, а также выполнять другие стандартные операции с файлами и папками в системе Windows. Хорошей новостью является то, что вы можете легко управлять файлами с помощью PowerShell.

Фактически, этот инструмент может сократить объем ручной работы, связанной с управлением файлами. В этой статье TipsMake сосредоточится на том, как создавать файлы и папки в PowerShell.

  1. Создать файл
    1. Создайте файл после двойной проверки имени файла
  2. Перезаписать существующий файл
  3. Записать данные в новый файл
  4. Создать каталог
    1. Использовать исходную оболочку Windows PowerShell
    2. Использование класса .NET Framework
    3. Используйте объект
    4. Используйте функцию md

Создать файл

Чтобы создать новый файл, используйте командлет New. Обычно этот командлет используется для создания любого типа объекта в PowerShell. Все, что вам нужно сделать, это указать тип объекта, который вы хотите создать в этом командлете.

Вот как вы можете создавать файлы или папки в PowerShell с помощью команды New-Item.

New-Item -Path ‘SharedTestFoldertestfile1.txt’ — Файл типа элемента

Приведенная выше команда создаст новый файл с именем testfile1.txt. Здесь Itemtype — это файл, поэтому эта команда создаст его за вас, а содержимое оставит пустым. Другими словами, эта команда создаст для вас пустой текстовый файл.

Создайте файл после двойной проверки имени файла

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

Пример такого сценария показан ниже.

$ filenames = Get-ChildItem SharedTestFolder * .txt | выберите -expand fullname $ filenames -match «testfile1.txt» If ($ filenames -eq ‘False’) {New -Item -Path ‘SharedTestFoldertestfile1.txt’ — ItemType File} else {exit}

Вышеупомянутый сценарий проверит, существует ли файл с таким же именем в том же каталоге, и если это так, он выйдет. В противном случае будет создан новый файл.

Перезаписать существующий файл

Ранее в статье было показано, как избежать перезаписи существующего файла. Но иногда вам нужно перезаписать файл, и это можно сделать с помощью параметра Force.

New-Item -Path ‘SharedTestFoldertestfile1.txt’ — Файл ItemType -Force

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

Записать данные в новый файл

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

Хорошей новостью является то, что PowerShell имеет встроенную команду Out-File для создания файлов и записи в них данных во время создания.

$ content = «Привет, мир! Это первая строка моего файла.» | out-file -filepath C: temptestfile1.txt

Это создаст файл с именем textfile1.txt в каталоге C: Temp, и он будет содержать ваше сообщение.

Изображение 1: как легко создавать файлы и папки с помощью Powershell

 Записать данные в новый файл

Таким образом, существуют разные способы создания файла, учитывающие особенности, о которых вы должны помнить.

Далее мы перейдем к разделу создания каталога.

Создать каталог

Существует 4 способа создания папок в PowerShell, и выбор зависит от ваших потребностей в программировании.

Использовать исходную оболочку Windows PowerShell

Возможно, самый простой способ создать каталог — использовать исходную команду Windows PowerShell. Вы также можете использовать ту же команду, что и при создании файлов для создания папок, и, как вы и предполагали, просто изменить значение ItemType:

New-Item -Path ‘SharedTestFolder’ — Каталог ItemType

Эта команда возвращает объект с именем DirectoryInfo, который имеет режим каталога, время последней записи и длину имени.

Вы даже можете опустить параметр Path и указать имя пути напрямую. Результат будет таким же.

Новый элемент SharedTestFolder — каталог ItemType

Обязательно укажите значение ItemType.

Использование класса .NET Framework

Следующий вариант — создать каталог, используя пространство имен system.io и статический метод CreatDirectory в классе Directory.

Вы можете использовать следующую команду:

[system.io.directory]:: CreateDirectory («SharedTestFolder»)

Предупреждение. Это класс .NET Framework, и его использование в среде Windows PowerShell не рекомендуется. Выбор за вами, и эта команда поможет создать каталог. Как и в предыдущем варианте, команда вернет объект DirectoryInfo со всеми деталями каталога.

Используйте объект

Третий способ — использовать метод Object из Scripting.FileSystemObject. Обратите внимание, что это тот же метод, который используется в VBScript, преимущество которого заключается в том, что его можно быстро и относительно легко использовать для создания каталогов.

$ newdirectory = новый-объект -ComObject scripting.filesystemobject $ newdirectory.CreateFolder (‘SharedTestFolder’)

Эта команда вернет объект, содержащий путь к каталогу и другую информацию.

Используйте функцию md

Последний вариант — создать каталог с помощью функции md. Многие люди находят это удобным, потому что они часто использовали его в командной строке для создания разных папок. Кроме того, синтаксис довольно прост, и вам не нужно упоминать ItemType, потому что одного md достаточно, чтобы сообщить системе, что вы уже создаете каталог.

Используемая команда:

md SharedTestFolder

Эта команда также возвращает объект DirectoryInfo.

Понравилась статья? Поделить с друзьями:
  • Как создать ярлык яндекс почты на рабочем столе в windows 10
  • Как создать файл большого размера windows
  • Как создать ярлык ютуба на рабочем столе для windows 10
  • Как создать файл без имени в windows 10
  • Как создать ярлык этот компьютер на рабочем столе windows 10