繁体   English   中英

在路径中包含空格,Powershell

[英]Including White Space in a Path, Powershell

我正在将 Powershell 连接到 Subversion,我遇到了一个问题,由于路径中有空格,Powershell 没有完成我的 url 用于 Subversion。

$Source = C:\Users\'+env:USERNAME+'\Desktop\FileDownloadLocation'
$SVNPath = 'http://subversion/svn/MainDirectory/SecondaryDirectory/Directory with a Space/subdirectory/finalLocation'

TortoiseProc.exe /command:checkout /url:$SVNPath /path:$Source /closeend:2

Subversion Checkout Window 中显示的是:

'http://subversion/svn/MainDirectory/SecondaryDirectory/Directory '

我需要将 URL 的剩余部分传递给 Subversion。 有没有办法让我在 Powershell 中执行此操作,我将如何在 Powershell 中将空格包含到我的 URL Subversion 路径中 go?

您应该也可以只将变量用引号引起来。

TortoiseProc.exe /command:checkout /url:"$SVNPath" /path:"$Source" /closeend:2

我知道这篇文章有点老,但这也许会对其他人有所帮助。 潜在的问题可能来自许多命令行参数,而不仅仅是TortoiseProc.exe。

由于某种原因,%20的想法对我不起作用,因此这是一个替代解决方案。 这里的问题是TortoiseProc.exe(以及许多其他工具)要求其中带有空格的路径用引号引起来。 但是默认情况下,PowerShell不会传递实际的引号字符,而只会传递其中的字符。

解决方案:在“普通”引号中包含转义引号。 所以它看起来像这样:

TortoiseProc.exe /command:checkout /url:"`"$SVNPath`"" /path:"`"$Source`"" /closeend:2

请密切注意“转义”内引号的反引号字符。 这将导致这些引号字符直接作为字符串的一部分传递,现在TortoiseProc.exe将正确处理文件路径和带空格的URL。

用三引号括起路径对我有用:

$path="""path to folder/file with spaces"""
TortoiseProc.exe /command:update /path:$path /closeend:1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM