在 powershell 脚本中使用“/”而不是“\”获取当前工作目录或任何目录

Get the current working directory or any directory with "/" instead of "\" in powershell script

为了将当前工作目录地址传递给程序。我需要提供由正斜杠 / 分隔的目录路径。该程序不接受包含反斜杠的字符串。

目前,pwd-Command 提供以下内容: C:\testdir1\testdir2

我想要以下字符串: C:/testdir1/testdir2

有没有一种简单的方法可以在 powershell 脚本中转换此目录地址?

提前致谢。

使用[1] to perform (invariably global) string replacements (since it is regex-based, a verbatim \ must be escaped as \); the automatic $PWD variable contains the PowerShell session's current location (which, if the underlying providerFileSystem提供者,是目录):

$PWD -replace '\', '/'

如果要确保生成的路径是文件系统本机路径(不基于仅限 PowerShell 的驱动器):

$PWD.ProviderPath -replace '\', '/'

如果当前位置有可能来自提供程序 其他 而不是文件系统(例如,基于注册表的驱动器,例如 HKLM:)。

(Get-Location -PSProvider FileSystem).ProviderPath -replace '\', '/'

[1] 在这个简单的例子中,调用 [string] 类型的 .Replace() method is an alternative, but the -replace operator is more PowerShell-idiomatic and offers superior functionality. 对比两者。

快速代码,但似乎按预期工作

# Original path
$Path = "C:\testdir1\testdir2"
Write-Host "Original Path is:" $Path
#Replace \ by /
$Changed = $Path -replace '\', '/'
Write-Host "changed path:" $Changed

输出

Original Path is: C:\testdir1\testdir2
changed path: C:/testdir1/testdir2