【问题标题】:Why is Powershell ignoring my quotation marks?为什么 Powershell 忽略我的引号?
【发布时间】:2014-02-03 04:38:50
【问题描述】:

我有一个 Powershell 脚本,无论我尝试什么,它都会完全忽略脚本中的任何引号。当我从我的 VB.NET 代码运行脚本时发生错误,我已经通过 VB.NET 成功运行脚本一段时间了。

例如,我的脚本从查找服务器名称开始...

这行得通:

$name = gc env:computername

这不是:

$name = "SERVERNAME"

给出的错误类似于 $name = SERVERNAME is not Recognized as a cmdlet.... 等等。

这导致我的脚本中的几行失败,并且错误消息总是显示不带引号的命令。

【问题讨论】:

  • 我认为透露您从 VB.NET 代码运行脚本的方法将有助于了解实际问题。
  • 如 Joel 所说,我敢打赌 VB 方面出了点问题。

标签: vb.net powershell


【解决方案1】:

当分配字符串值时,你必须给它们加上引号(单引号或双引号)。

$name = '服务器名'

$name = "服务器名称"

或将其直接分配给变量(不需要引号):

$name = $env:计算机名

【讨论】:

  • 出于某种原因,它适用于单曲但不适用于双曲。这很奇怪,但无论如何它都有效。如果我有时间再调查一些,我会在这里发布。谢谢大家!
【解决方案2】:

我不熟悉从 vbs 执行此操作,但症状表明解析器正在丢弃引号。如果你双引号字符串:

$name = ""服务器名称""

它应该丢弃外部集合,而将内部集合留给您。

【讨论】:

    【解决方案3】:

    Dim name As String = "SERVERNAME" 可能吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      • 2017-08-12
      • 1970-01-01
      • 2011-04-13
      • 1970-01-01
      • 2012-04-25
      • 1970-01-01
      相关资源
      最近更新 更多