在 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 provider是FileSystem
提供者,是目录):
$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
为了将当前工作目录地址传递给程序。我需要提供由正斜杠 /
分隔的目录路径。该程序不接受包含反斜杠的字符串。
目前,pwd
-Command 提供以下内容:
C:\testdir1\testdir2
我想要以下字符串:
C:/testdir1/testdir2
有没有一种简单的方法可以在 powershell 脚本中转换此目录地址?
提前致谢。
使用\
must be escaped as \
); the automatic $PWD
variable contains the PowerShell session's current location (which, if the underlying provider是FileSystem
提供者,是目录):
$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