什么是@"运营商?

jas*_*hao 1 syntax powershell

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

它在这段代码中:

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

我还继续收到上面第一行的错误消息:

White space is not allowed before the string terminator.
Run Code Online (Sandbox Code Playgroud)

我改变",但没有运气.

那么这些符号在Powershell中意味着什么呢?

谢谢

Mat*_*att 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
Run Code Online (Sandbox Code Playgroud)

我会仔细检查你实际使用的代码.猜猜你会发现错误所暗示的领先空白.您链接到的页面中有一条评论说明了从代码中删除该空格.您从具有前导空格的该站点复制并粘贴.

devcentral.f5.com获取一条线

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

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

我也看到了聪明的报价但是,就像你说的那样,当你改变它们时没有帮助.一般来说,请留意这些.