【问题标题】:What is @” operator?什么是@”运算符?
【发布时间】:2015-05-02 23:11:43
【问题描述】:

我在整个互联网上搜索了这意味着什么:@”,包括@

就在这个code:

$Win32ShowWindowAsync = Add-Type –memberDefinition @” 
[DllImport("user32.dll")] 
public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); 
“@ -name “Win32ShowWindowAsync” -namespace Win32Functions –passThru

我也不断收到上面第一行的错误消息:

White space is not allowed before the string terminator.

我将 更改为",但没有运气。

那么这些符号在 Powershell 中是什么意思呢?

谢谢

【问题讨论】:

标签: powershell syntax


【解决方案1】:

您正在查看here-string。错误来自格式错误的此处字符串。

您上面的代码复制并按原样正常工作。开始必须完成该行,并且此处字符串的结尾必须单独在它自己的行上。它们在问题中的代码中。我可以通过在终止符 "@ 之前添加一些空格来创建您的错误。

$Win32ShowWindowAsync = Add-Type –memberDefinition @”
[DllImport("user32.dll")] 
public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); 
    “@ -name “Win32ShowWindowAsync” -namespace Win32Functions –passThru

我会仔细检查您实际使用的代码。猜测您会发现错误提示的前导空格。您链接到的页面中有一条评论谈到从代码中删除该空格。您从具有前导空格的那个站点复制并粘贴。

devcentral.f5.com转行

here-string 用于将脚本中内联的大块文本嵌入到单个字符串文字中。这与 C# 中的一个功能非常相似,但不同之处在于,在 PowerShell 中,here-string 从行尾开始,而终止序列必须在行首。

使用双引号将允许变量扩展,而单引号则不允许。就像 PowerShell 中的普通字符串一样。

我也看到了智能引号,但正如您所说,当您更改它们时,这并没有帮助。一般来说,请留意那些。

【讨论】:

  • 这是错误的第一次命中,现在值得:)
  • 这很有趣。无论如何我都会删除那部分。
猜你喜欢
  • 2012-05-11
  • 2013-07-31
  • 1970-01-01
  • 2015-05-28
  • 2010-09-21
  • 1970-01-01
相关资源
最近更新 更多