首页 > 解决方案 > PowerShell 跨平台中的点斜杠和反斜杠

问题描述

我正在编写调用其他 PowerShell 脚本的 PowerShell 脚本,& .\other\script.ps1但我认为反斜杠\是 Windows 的东西,我希望我的脚本能够跨平台工作。

我注意到 Windows 中的 PowerShell 确实接受& ./other/script.ps1,但这可能是偶然的。PowerShell 是否总是将我的反斜杠转换为主机平台?

在 PowerShell 中跨平台处理路径分隔符的最佳方法是什么?

标签: powershell

解决方案


根据我的经验,Windows PowerShell 很乐意接受\/作为路径分隔符,因此跨平台的一种方法是始终使用/.

或者,您可以使用Pathcmdlet 为您处理构建路径,例如:

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

或者获取当前目录中文件的路径:

Resolve-Path test.txt

路径 cmdlet:

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

Name
----
Convert-Path
Join-Path
Resolve-Path
Split-Path
Test-Path

推荐阅读