以下是我试图在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?
答案 0 :(得分:3)
不要尝试混合批处理和PowerShell命令。要获取IPv4地址,请尝试以下操作:
$ip = (ipconfig | Foreach {if ($_ -match 'IPv4 address.*?:\s+(.*)') {$matches[1]}})[0]
如果您使用的是Windows 8或更高版本,则可以使用:
Get-NetIPAddress -AddressFamily IPv4 -AddressState Preferred