いくつかの.cmdファイルでホストのFQDNを取得しようとしています。 ADドメインを分離したため、_"@echo %COMPUTERNAME%.%USERDNSDOMAIN%"
_は機能しません。私はそれが機能することを意味しますが、間違った値を返します。
私が最終的に得た解決策はpowershell.exe -noninteractive -command[System.Net.Dns]::GetHostByName(($env:computerName)).HostName
です
コマンドラインで正常に動作します。私はそれを私のcmdファイルの変数に入れようとしています:
_FOR /F "tokens=* USEBACKQ" %%F IN (\`powershell.exe -noninteractive -command
[System.Net.Dns]::GetHostByName(($env:computerName)).HostName\`) DO (
SET var=%%F
)
ECHO %var%
_
しかし、次のエラーが発生しました:).HostName`)は、現時点では予期されていませんでした。
Cmdとpowershellの両方がこの行を解析しているため、何かをスクリーニングする必要があることを理解していますが、何をどのようにスクリーニングするかわかりません。これを機能させる方法は?
FOR \F
を使用する場合は、括弧をエスケープする必要があります件名
FOR /F "tokens=* USEBACKQ" %%F IN (`powershell.exe -noninteractive -command [System.Net.Dns]::GetHostByName^(^($env:computerName^)^).HostName`) DO (
SET var=%%F
)
ECHO %var%