从字符串创建脚本块

时间:2015-09-28 13:32:30

标签: powershell scriptblock

以下是我试图在scriptblock中工作的内容

$scriptblock={
for /f "tokens=14" %i in ('"ipconfig | findstr IPv4"') do set ip=%i

nslookup %ip%
}

每次虽然我得到了

  

异常调用"创建"用" 1"参数:"在行:4 char:4   + for / f"令牌= 14" %i in('" ipconfig | findstr IPv4"')设置ip =%i   +〜缺少开头'('关键字' for'。"在线:1字符:1   + $ scriptblock = [scriptblock] :: create($ scriptblock)   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       + CategoryInfo:NotSpecified:(:) [],MethodInvocationException       + FullyQualifiedErrorId:ParseException

我已尝试先将其设置为此字符串,然后使用[scriptblock]::create(),但仍然可以使用相同的内容。

如何将其纳入scriptblock?

1 个答案:

答案 0 :(得分:3)

不要尝试混合批处理和PowerShell命令。要获取IPv4地址,请尝试以下操作:

$ip = (ipconfig | Foreach {if ($_ -match 'IPv4 address.*?:\s+(.*)') {$matches[1]}})[0]

如果您使用的是Windows 8或更高版本,则可以使用:

Get-NetIPAddress -AddressFamily IPv4 -AddressState Preferred