我在互联网上搜索了这意味着什么:@”
,包括@
和”
。
这是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中意味着什么?
由于
答案 0 :(得分:8)
您正在查看here-string。错误来自格式错误的here-string。
您上面的代码复制并且工作正常。开始必须完成该行,并且此字符串的结尾必须单独在其自己的行上。它们在您的问题代码中。我可以通过在终结符"@
之前添加一些空格来创建错误。
$Win32ShowWindowAsync = Add-Type –memberDefinition @”
[DllImport("user32.dll")]
public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
“@ -name “Win32ShowWindowAsync” -namespace Win32Functions –passThru
我会仔细检查您实际使用的代码。猜猜你会发现错误所暗示的领先空白。您链接到的页面中有一条评论说明了从代码中删除该空格。您从具有前导空格的该站点复制并粘贴。
取一条线here-string用于将脚本中的大块文本嵌入到单个字符串文字中。这与C#中的一个特性非常相似,但不同之处在于,在PowerShell中,here-string从一行开始,终止序列必须在一行的开头。
使用双引号将允许变量扩展,而单引号则不允许。就像PowerShell中的普通字符串一样。
我也看到了聪明的引语,但是,就像你说的那样,当你改变它们时并没有帮助。一般来说,请留意这些。