我有一个场景,我在log.ini文件中有以下详细信息
Hostname : DLC1MQF
IP Address : 10.210.208.102
Temporary IP : 10.212.215.91
Subnet Mask : 255.255.248.0
Gateway : 10.212.208.1
我想要做的只是从log.ini获取网关信息并对其进行ping操作,看看是否ping。如果不是,我必须写一个条件。那我怎么写呢?
我能写出这样的东西,但是我在修改gateway.txt输出时遇到了问题
$log = Get-Content C:\Windows\ImageLog.ini
foreach ($line in $log) {
if ($line -like "*Gateway*") {
$line | out-file -FilePath "C:\Windows\Gateway.txt"
}
}
答案 0 :(得分:0)
试试这个:
$log = Get-Content C:\Windows\ImageLog.ini
$gateways = $log -like "*Gateway*"
foreach ($g in $gateways) {
$ip = ($g -split ':')[1].Trim()
ping $ip
if (!$?) {
$ip | Out-File -FilePath C:\Windows\Gateway.txt -Append
}
}
$log -like "*Gateway*"
提取网关线。
($g -split ':')[0]
是“网关”
($g -split ':')[1]
是“10.212.208.1”
Trim()
是System.String
$?
包含ping
的结果。有关详细信息,请参阅about_Automatic_Variables
如果您想取消ping
的输出,请运行ping $ip > $null
如果您要覆盖Gateway.txt,请从-Append
cmdlet中删除Out-File
切换参数。