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


Join-Path

Объединяет путь и дочерний путь в один путь.

Синтаксис

Default (По умолчанию)

Join-Path
    [-Path] <String[]>
    [-ChildPath] <String>
    [[-AdditionalChildPath] <String[]>]
    [-Resolve]
    [-Credential <PSCredential>]
    [-Extension <String>]
    [<CommonParameters>]

Описание

Командлет Join-Path объединяет путь и дочерний путь в один путь. Поставщик предоставляет разделители путей.

Примеры

Пример 1. Объединение пути с дочерним путем

Join-Path -Path "path" -ChildPath "childpath"
path\childpath

Эта команда использует Join-Path для объединения пути с дочерним путем.

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

Пример 2. Объединение путей, которые уже содержат разделители каталогов

Join-Path -Path "path\" -ChildPath "\childpath"
path\childpath

Существующие разделители каталогов обрабатываются \, поэтому существует только один разделитель между path и ChildPath.

Пример 3. Отображение файлов и папок путем присоединения пути к дочернему пути

Join-Path "C:\win*" "System*" -Resolve

Эта команда отображает файлы и папки, на которые ссылаются, объединяя путь C:\Win\* и дочерний путь System\*. Он отображает те же файлы и папки, что и Get-ChildItem, но отображает полный путь к каждому элементу. В этой команде опущены пути и ChildPath необязательные имена параметров.

Пример 4. Использование Join-Path с поставщиком реестра PowerShell

PS HKLM:\> Join-Path -Path System -ChildPath *ControlSet* -Resolve
HKLM:\System\ControlSet001
HKLM:\System\CurrentControlSet

Эта команда отображает ключи реестра в подразделе реестра HKLM\System, содержащие ControlSet.

Параметр Resolve пытается разрешить присоединенный путь, включая подстановочные знаки из текущего пути поставщика HKLM:\

Пример 5. Объединение нескольких корней путей с дочерним путем

Join-Path -Path C:, D:, E:, F: -ChildPath New
C:\New
D:\New
E:\New
F:\New

Эта команда использует Join-Path для объединения нескольких корневых путей с дочерним путем.

Замечание

Диски, указанные path, должны существовать или соединение этой записи завершится ошибкой.

Пример 6. Объединение корней диска файловой системы с дочерним путем

Get-PSDrive -PSProvider FileSystem |
    ForEach-Object {$_.Root} |
    Join-Path -ChildPath "Subdir"
C:\Subdir
D:\Subdir

Эта команда объединяет корневые каталоги каждого диска файловой системы PowerShell в консоли с дочерним путем Subdir.

Команда использует командлет Get-PSDrive для получения дисков PowerShell, поддерживаемых поставщиком FileSystem. Инструкция ForEach-Object выбирает только свойство Root объекта PSDriveInfo и объединяет его с указанным дочерним путем.

В выходных данных показано, что диски PowerShell на компьютере содержали диск, сопоставленный с каталогом C:\Program Files.

Пример 7. Объединение неограниченного количества путей

Join-Path a b c d e f g
a\b\c\d\e\f\g

Параметр AdditionalChildPath позволяет присоединять неограниченное количество путей.

В этом примере имена параметров не используются, поэтому "a" привязывается к path, "b" к ChildPath и "c-g" к AdditionalChildPath.

Пример 8. Объединение неограниченного количества путей

Параметр ChildPath позволяет объединить массив путей.

Join-Path -Path a -ChildPath b, c, d, e, f, g
a\b\c\d\e\f\g

Пример 9. Добавление расширения в файл без расширения

Join-Path C:\Temp myfile -Extension txt
C:\Temp\myfile.txt

Пример 10. Изменение существующего расширения

Join-Path C:\Temp myfile.txt -Extension .log
C:\Temp\myfile.log

Пример 11. Расширение без начальной точки

Join-Path C:\Temp file.txt -Extension log
C:\Temp\file.log

Пример 12. Удаление расширения с пустой строкой

Join-Path C:\Temp file.txt -Extension ""
C:\Temp\file

Параметры

-AdditionalChildPath

Указывает дополнительные элементы, которые следует добавить к значению параметра пути. Параметр ChildPath по-прежнему является обязательным и должен быть указан. Этот параметр указан с помощью свойства ValueFromRemainingArguments, что позволяет присоединять неограниченное количество путей.

Этот параметр был добавлен в PowerShell 6.0.

Свойства параметров

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:2
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-ChildPath

Указывает элементы, добавляемые к значению параметра Path. Подстановочные символы разрешены.

Начиная с PowerShell 7.6-preview.4 этот параметр принимает массив строк. Это позволяет указать несколько дочерних путей для соединения с основным путем. Этот параметр можно использовать вместо параметра AdditionalChildPath.

Свойства параметров

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:True
DontShow:False

Наборы параметров

(All)
Position:1
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-Credential

Замечание

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

Свойства параметров

Тип:PSCredential
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-Extension

Указывает расширение, используемое для результирующего пути. Если оно не указано, исходное расширение сохраняется. Ведущее значение в расширении является необязательным. Если опущено, команда автоматически добавляет ее.

  • Если путь имеет существующее расширение, он заменен указанным расширением.
  • Если путь не имеет расширения, добавляется указанное расширение.
  • Если указать пустую строку, то существующее расширение удаляется.

Свойства параметров

Тип:String
Default value:None
Поддерживаются подстановочные знаки:True
DontShow:False

Наборы параметров

(All)
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-Path

Указывает основной путь (или пути), к которому добавляется дочерний путь. Значение пути определяет, какой поставщик присоединяет пути и добавляет разделители пути. Подстановочные символы разрешены.

Свойства параметров

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:True
DontShow:False
Aliases:PSPath

Наборы параметров

(All)
Position:0
Обязательно:True
Значение из конвейера:True
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-Resolve

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

  • При использовании подстановочных знаков командлет возвращает все пути, соответствующие присоединенным пути.
  • Если вы не используете подстановочные знаки, командлет возвращает ошибку, если путь не существует.

Свойства параметров

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

CommonParameters

Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.

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

String

Можно передать строку, содержащую путь к этому командлету.

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

String

Этот командлет возвращает строку, содержащую полученный путь.

Примечания

Командлеты, содержащие существительное Path, управляют именами путей и возвращают их в сжатом формате, который могут интерпретировать все поставщики PowerShell. Они предназначены для использования, где требуется отобразить все или часть пути в определенном формате. Используйте их так, как вы будете использовать Dirname, Normpath, Realpath, Joinили другие манипуляторы пути.

Командлеты пути можно использовать с несколькими поставщиками, включая FileSystem, Registryи Certificate.

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