sách gpt4 ai đã đi

Vòng lặp Powershell ForEach hoạt động không liên tục - hoạt động, lỗi, hoạt động, lỗi, hoạt động, v.v.

In lại 作者:行者123 更新时间:2023-12-02 23:54:25 30 4
mua khóa gpt4 Nike

我在Windows 10中使用一些简单的Powershell代码遇到了这个奇怪的问题,我认为这可能是我做错了,但我不是Powershell的天才。

我有这个:

$ix = [System.Net.Dns]::GetHostEntry(').AddressList.IPAddressToString;
$e = If ($ix -ne $null) {$ix | % { $_.split('.')[0..1] -join '.'} | % {$_ + '.'}} ;
$r = Get-NetRoute | ? AddressFamily -eq 'IPv4' | Select -exp 'DestinationPrefix'; ForEach ($e in $e) {$xline = $r -match $e}; write $xline

$ ix是从服务器返回到列表中的IP地址范围,然后进行操作以获得$ e。

$ e是从IP地址列表派生的每个IP地址的前两个八位字节的列表。

$ r是路由表的IPv4地址

目的是将$ e中IP地址的前两个八位字节与$ r中IP地址的前两个八位字节进行匹配,然后用$ xline返回匹配的$ r路由表IP地址。这将按预期工作,直到不再工作为止。

问题是它可以正常工作,然后突然不再工作,因为即使$ ix,$ e和$ r值仍被填充并且它们的相关代码也可以正常工作,但是$ xline变成空的。尝试几次后,它将再次开始尝试几次,然后停止工作。我不知道我在做什么错,或者这是否是解决问题的正确方法,但我喜欢它的相对简单性。任何帮助,将不胜感激。谢谢。

1 Câu trả lời

尝试以下操作(我对代码进行了一些重新格式化,以便更清楚地进行故障排除):

$ix = [System.Net.Dns]::GetHostEntry($env:COMPUTERNAME).AddressList.IPAddressToString;

$e = If ($ix -ne $null) {
$ix | ForEach-Object { ( $_.split('.')[0..1] -join '.') + '.' }
}

$r = Get-NetRoute | Where-Object { $_.AddressFamily -eq 'IPv4' } | Select-Object -ExpandProperty 'DestinationPrefix'

$xline = ForEach ($f in $e) {
$r -match $f
}

$xline

主要变化是将 $lineĐặt thành ForEach循环中返回的所有值,而不是最后一个。

另外,我还删除了不必要的 ForEach-Object,因为您可以执行它在较早版本中实现的功能。

以下是您简短格式的修复程序:
$ix = [System.Net.Dns]::GetHostEntry('').AddressList.IPAddressToString;
$e = If ($ix -ne $null) {$ix | % { ($_.split('.')[0..1] -join '.') + '.'} ;
$r = Get-NetRoute | ? AddressFamily -eq 'IPv4' | Select -exp 'DestinationPrefix'; $xline = ForEach ($e in $e) { $r -match $e}; write $xline

关于powershell - Powershell ForEach循环间歇性工作-工作,失败,工作,失败,工作等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48947407/

30 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com