VB.NET 双引号

VB.NET double quoting

当我只需要一组双引号时,我遇到了一个奇怪的双引号问题。

我将变量连接到一个字符串中以构建一个 powershell 命令我将通过 powershell 运行space 运行。我正在使用 String.Format() 来格式化字符串,但是当我引入一个变量并在字符串中围绕它添加 ControlChars.Quote 时,我在变量的每一侧得到 2 组引号。就好像我根本不包含引号一样,我没有得到任何引号。这两种情况都是不正确的。

Dim psCommand As String = New String("")
psCommand = String.Format("New-PublicFolder -Name {0}{1} - {2}{0} -Path \ANZ\NZ\", ControlChars.Quote, CurrentJobProjNumber, CurrentJobProjName)

我在 运行ning 时得到的结果是:New-PublicFolder -Name ""60412345 - Test Project"" -Path \ANZ\NZ\

我期待获得 New-PublicFolder -Name "60412345 - Test Project" -Path \ANZ\NZ\

我尝试了多种不同的方法,但似乎都导致了上面的错误结果,而不是我期望的正确结果。

psCommand = String.Format("New-PublicFolder -Name " & Chr(34) & CurrentJobProjNumber & " - " & CurrentJobProjName & Chr(34) & " -Path \ANZ\NZ\"

psCommand = String.Format("New-PublicFolder -Name {0}{1} - {2}{0} -Path \ANZ\NZ\", Chr(34), CurrentJobProjNumber, CurrentJobProjName)

Dim test As String = New String("")
test = Chr(34) & CurrentJobProjNumber & " - " & CurrentJobProjName & Chr(34)
psCommand = "New-PublicFolder -Name " & test & " -Path \ANZ\NZ"

我不确定我做错了什么,对于看起来如此简单的东西(并且在 C# 中)我无法弄清楚为什么在 VB.net 中它如此复杂。如有任何建议,我们将不胜感激。

谢谢 鲍勃

要转义 vb.net 中的双引号,只需使用两个双引号即可。我将使用您上次的测试给您举个例子:

    Dim test As String = Nothing
    Dim CurrentJobProjNumber As String = "60412345"
    Dim CurrentJobProjName As String = "Test Project"
    test = """" & CurrentJobProjNumber & " - " & CurrentJobProjName & """"
    Dim psCommand As String = "New-PublicFolder -Name " & test & " -Path \ANZ\NZ"
    MsgBox(psCommand)

将所有这些双引号像那样堆叠起来确实看起来很奇怪,但这会让您找到想要的东西。