Косая черта и обратная косая черта в кроссплатформенной платформе PowerShell - PullRequest
1 голос
/ 10 апреля 2019

Я пишу сценарии PowerShell, которые вызывают другие сценарии PowerShell с & .\other\script.ps1, но обратная косая черта \, как я полагаю, относится к Windows, и я хочу, чтобы мои сценарии работали кроссплатформенно.

Я заметил, что PowerShell в Windows принимает & ./other/script.ps1, но это может быть случайным. PowerShell ВСЕГДА собирается переводить мои обратные слеши на платформу хоста?

Каков наилучший подход к работе с кроссплатформенными разделителями путей в PowerShell?

1 Ответ

2 голосов
/ 10 апреля 2019

По моему опыту, Windows PowerShell с радостью принимает либо \, либо / в качестве разделителя пути, поэтому один из способов кроссплатформенности - всегда использовать /.

В качестве альтернативы вы можете использовать командлеты Path для обработки путей здания, например:

Join-Path -Path $Pwd -ChildPath (Join-Path -Path 'Other' -ChildPath 'script.ps1')

Или получить путь к файлу в текущем каталоге:

Resolve-Path test.txt

Командлеты Path:

~> get-command *-path* | Select Name

Name
----
Convert-Path
Join-Path
Resolve-Path
Split-Path
Test-Path
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...