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)
将所有这些双引号像那样堆叠起来确实看起来很奇怪,但这会让您找到想要的东西。
当我只需要一组双引号时,我遇到了一个奇怪的双引号问题。
我将变量连接到一个字符串中以构建一个 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)
将所有这些双引号像那样堆叠起来确实看起来很奇怪,但这会让您找到想要的东西。