当我只期待一组双引号时,我有一个奇怪的双引号问题。
我将变量连接成一个字符串以构建一个PowerShell命令,我将通过powershell运行空间运行。我正在使用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)
运行时得到的结果是:New-PublicFolder -Name“”60412345 - Test Project“” - Path \ ANZ \ NZ \
我期待得到New-PublicFolder -Name“60412345 - 测试项目”-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中它会如此复杂。任何建议将不胜感激。
由于 鲍勃
答案 0 :(得分:0)
要在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)
将所有这些双引号叠加在一起看起来确实很奇怪,但这会让你得到你正在寻找的东西。