0

これが私がスクリプトブロックで作業しようとしているものです

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

nslookup %ip%
}

私が取得するたびに

「1」個の引数を指定して「Create」を呼び出し中に例外が発生しました: 「行:4 文字:4 + for /f "tokens=14" %i in ('"ipconfig | findstr IPv4"') do set ip=%i + ~ キーワード 'for' の後に開始 '(' がありません。 行:1 文字:1 + $scriptblock=[scriptblock]::create($scriptblock) + ~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : ParseException

最初に here 文字列に設定してから を使用しようとしました[scriptblock]::create()が、それでも同じ結果が得られます。

これをスクリプトブロックに入れるにはどうすればよいですか?

4

1 に答える 1

3

バッチ コマンドと PowerShell コマンドを混在させないでください。IPv4 アドレスを取得するには、次を試してください。

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

Windows 8 以降を使用している場合は、次を使用できます。

Get-NetIPAddress -AddressFamily IPv4 -AddressState Preferred
于 2015-09-28T14:29:15.253 に答える