<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>ZHUQQ的技术小站</title><link>https://www.88660088.xyz/</link><description>Good Luck To You!</description><item><title>微软浏览器 Microsoft Edge v154.0.4258.37 正式版</title><link>https://www.88660088.xyz/index.php/post/1614.html</link><description>&lt;p&gt;&lt;span style=&quot;color: rgb(51, 56, 61); background-color: rgb(255, 255, 255); font-size: 14px;&quot;&gt;Microsoft Edge 是一款快速而安全的浏览器，可帮助您保护数据，节省时间和金钱。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.88660088.xyz/zb_users/upload/2026/09/202609291790663737875847.jpg&quot; alt=&quot;Edge&quot; data-href=&quot;&quot; style=&quot;&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;更新日志：&lt;br&gt;版本 153.0.4234.46：2026‎年‎9‎月22日&lt;br&gt;修复了各种 bug 和性能问题。&lt;br&gt;&lt;br&gt;版本 109.0.1518.140：2023年9月15日&lt;br&gt;备注：此更新是为 M109 Windows 下层扩展支持完成的。我们将交付 109 到 Win 7、8 和 8.1 (包括基于 Win 8.1) 的 Server 2012 R2。&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;下载地址：&lt;br&gt;Microsoft Edge v154.0.4258.37 for Windows 10/11&lt;br&gt;&lt;a href=&quot;https://www.microsoft.com/zh-CN/edge/business/download&quot; target=&quot;_blank&quot;&gt;https://www.microsoft.com/zh-CN/edge/business/download&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Microsoft Edge v109.0.1518.140 for Windows 7/8/8.1 解压得到.msi文件进行安装&lt;br&gt;32位：&lt;a href=&quot;https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/updt/2023/09/microsoftedgeenterprisex86_860e34f30e167735cb30898672cfaa13ab5400a7.cab&quot; target=&quot;_blank&quot;&gt;https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/updt/2023/09/microsoftedgeenterprisex86_860e34f30e167735cb30898672cfaa13ab5400a7.cab&lt;/a&gt;&lt;br&gt;64位：&lt;a href=&quot;https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/updt/2023/09/microsoftedgeenterprisex64_1f83a194c1919bb272a7ab8b3c0ad7d8d401ae86.cab&quot; target=&quot;_blank&quot;&gt;https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/updt/2023/09/microsoftedgeenterprisex64_1f83a194c1919bb272a7ab8b3c0ad7d8d401ae86.cab&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;/p&gt;</description><pubDate>Tue, 29 Sep 2026 14:35:07 +0800</pubDate></item><item><title>谷歌浏览器 Google Chrome v154.0.8037.58 正式版</title><link>https://www.88660088.xyz/index.php/post/1613.html</link><description>&lt;p&gt;&lt;span style=&quot;color: rgb(51, 56, 61); background-color: rgb(255, 255, 255); font-size: 14px;&quot;&gt;Google Chrome 是一款快速、安全且免费的网络浏览器，能很好地满足新型网站对浏览器的要求。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.88660088.xyz/zb_users/upload/2026/09/202609291790663681861145.png&quot; alt=&quot;Chrome&quot; data-href=&quot;&quot; style=&quot;&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;下载地址：&lt;br&gt;Google Chrome 企业版 v154.0.8037.58 for Windows 10/11&lt;br&gt;32位：&lt;a href=&quot;https://edgedl.me.gvt1.com/dl/chrome/install/GoogleChromeStandaloneEnterprise.msi&quot; target=&quot;_blank&quot;&gt;https://edgedl.me.gvt1.com/dl/chrome/install/GoogleChromeStandaloneEnterprise.msi&lt;/a&gt;&lt;br&gt;64位：&lt;a href=&quot;https://edgedl.me.gvt1.com/dl/chrome/install/GoogleChromeStandaloneEnterprise64.msi&quot; target=&quot;_blank&quot;&gt;https://edgedl.me.gvt1.com/dl/chrome/install/GoogleChromeStandaloneEnterprise64.msi&lt;/a&gt;&lt;br&gt;Arm64：&lt;a href=&quot;https://edgedl.me.gvt1.com/dl/chrome/install/GoogleChromeStandaloneEnterprise_Arm64.msi&quot; target=&quot;_blank&quot;&gt;https://edgedl.me.gvt1.com/dl/chrome/install/GoogleChromeStandaloneEnterprise_Arm64.msi&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Google Chrome 企业版 v109.0.5414.168 for Windows 7/8/8.1&lt;br&gt;32位：&lt;a href=&quot;https://edgedl.me.gvt1.com/edgedl/release2/10/windows-8/GoogleChromeStandaloneEnterprise.msi&quot; target=&quot;_blank&quot;&gt;https://edgedl.me.gvt1.com/edgedl/release2/10/windows-8/GoogleChromeStandaloneEnterprise.msi&lt;/a&gt;&lt;br&gt;64位：&lt;a href=&quot;https://edgedl.me.gvt1.com/edgedl/release2/10/windows-8/GoogleChromeStandaloneEnterprise64.msi&quot; target=&quot;_blank&quot;&gt;https://edgedl.me.gvt1.com/edgedl/release2/10/windows-8/GoogleChromeStandaloneEnterprise64.msi&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Google Chrome v49.0.2623.112 for Windows XP/Vista&lt;br&gt;32位：&lt;a href=&quot;https://dl.google.com/release2/h8vnfiy7pvn3lxy9ehfsaxlrnnukgff8jnodrp0y21vrlem4x71lor5zzkliyh8fv3sryayu5uk5zi20ep7dwfnwr143dzxqijv/49.0.2623.112_chrome_installer.exe&quot; target=&quot;_blank&quot;&gt;https://dl.google.com/release2/h8vnfiy7pvn3lxy9ehfsaxlrnnukgff8jnodrp0y21vrlem4x71lor5zzkliyh8fv3sryayu5uk5zi20ep7dwfnwr143dzxqijv/49.0.2623.112_chrome_installer.exe&lt;/a&gt;&lt;br&gt;备注：从v50开始不支持XP，WinXP用户请使用v49。&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;/p&gt;</description><pubDate>Tue, 29 Sep 2026 14:33:56 +0800</pubDate></item><item><title>火狐浏览器 Firefox v156.0.1 简体中文版</title><link>https://www.88660088.xyz/index.php/post/1612.html</link><description>&lt;p&gt;&lt;span style=&quot;color: rgb(51, 56, 61); background-color: rgb(255, 255, 255); font-size: 14px;&quot;&gt;火狐浏览器(Firefox)是一款热门的开源网页浏览器，使用的Gecko引擎。它能够同时支持多种网络标准；可以进行个性化定制；具备出色的性能；也能够安装多种扩展程序。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.88660088.xyz/zb_users/upload/2026/09/202609291790663559156860.png&quot; alt=&quot;Firefox&quot; data-href=&quot;&quot; style=&quot;&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;更新日志：&lt;br&gt;v156.0.1 版本更新：2026年9月22日&lt;br&gt;v153.3.0 ESR 版本更新：2026年9月15日&lt;br&gt;v115.41.0 ESR 版本更新：2026年9月15日&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;下载地址：&lt;br&gt;Mozilla Firefox v156.0.1 简体中文版：Windows 10或更高版本&lt;br&gt;32位：&lt;a href=&quot;https://ftp.mozilla.org/pub/firefox/releases/156.0.1/win32/zh-CN/Firefox%20Setup%20156.0.1.exe&quot; target=&quot;_blank&quot;&gt;https://ftp.mozilla.org/pub/firefox/releases/156.0.1/win32/zh-CN/Firefox%20Setup%20156.0.1.exe&lt;/a&gt;&lt;br&gt;64位：&lt;a href=&quot;https://ftp.mozilla.org/pub/firefox/releases/156.0.1/win64/zh-CN/Firefox%20Setup%20156.0.1.exe&quot; target=&quot;_blank&quot;&gt;https://ftp.mozilla.org/pub/firefox/releases/156.0.1/win64/zh-CN/Firefox%20Setup%20156.0.1.exe&lt;/a&gt;&lt;br&gt;Arm64：&lt;a href=&quot;https://ftp.mozilla.org/pub/firefox/releases/156.0.1/win64-aarch64/zh-CN/Firefox%20Setup%20156.0.1.exe&quot; target=&quot;_blank&quot;&gt;https://ftp.mozilla.org/pub/firefox/releases/156.0.1/win64-aarch64/zh-CN/Firefox%20Setup%20156.0.1.exe&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Mozilla Firefox v153.3.0 ESR 简体中文版：Windows 10或更高版本&lt;br&gt;32位：&lt;a href=&quot;https://ftp.mozilla.org/pub/firefox/releases/153.3.0esr/win32/zh-CN/Firefox%20Setup%20153.3.0esr.exe&quot; target=&quot;_blank&quot;&gt;https://ftp.mozilla.org/pub/firefox/releases/153.3.0esr/win32/zh-CN/Firefox%20Setup%20153.3.0esr.exe&lt;/a&gt;&lt;br&gt;64位：&lt;a href=&quot;https://ftp.mozilla.org/pub/firefox/releases/153.3.0esr/win64/zh-CN/Firefox%20Setup%20153.3.0esr.exe&quot; target=&quot;_blank&quot;&gt;https://ftp.mozilla.org/pub/firefox/releases/153.3.0esr/win64/zh-CN/Firefox%20Setup%20153.3.0esr.exe&lt;/a&gt;&lt;br&gt;Arm64：&lt;a href=&quot;https://ftp.mozilla.org/pub/firefox/releases/153.3.0esr/win64-aarch64/zh-CN/Firefox%20Setup%20153.3.0esr.exe&quot; target=&quot;_blank&quot;&gt;https://ftp.mozilla.org/pub/firefox/releases/153.3.0esr/win64-aarch64/zh-CN/Firefox%20Setup%20153.3.0esr.exe&lt;/a&gt;&lt;br&gt;备注：火狐浏览器延长支持版，简称“ESR”，是 Mozilla 专门为那些无法或不愿每隔六周就升级一次的企业打造。&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Mozilla Firefox v115.41.0 ESR 简体中文版 for Windows 7/8/8.1&lt;br&gt;32位：&lt;a href=&quot;https://ftp.mozilla.org/pub/firefox/releases/115.41.0esr/win32/zh-CN/Firefox%20Setup%20115.41.0esr.exe&quot; target=&quot;_blank&quot;&gt;https://ftp.mozilla.org/pub/firefox/releases/115.41.0esr/win32/zh-CN/Firefox%20Setup%20115.41.0esr.exe&lt;/a&gt;&lt;br&gt;64位：&lt;a href=&quot;https://ftp.mozilla.org/pub/firefox/releases/115.41.0esr/win64/zh-CN/Firefox%20Setup%20115.41.0esr.exe&quot; target=&quot;_blank&quot;&gt;https://ftp.mozilla.org/pub/firefox/releases/115.41.0esr/win64/zh-CN/Firefox%20Setup%20115.41.0esr.exe&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Mozilla Firefox v52.9.0 ESR 简体中文版 for Windows XP/Vista&lt;br&gt;32位：&lt;a href=&quot;https://ftp.mozilla.org/pub/firefox/releases/52.9.0esr/win32/zh-CN/Firefox%20Setup%2052.9.0esr.exe&quot; target=&quot;_blank&quot;&gt;https://ftp.mozilla.org/pub/firefox/releases/52.9.0esr/win32/zh-CN/Firefox%20Setup%2052.9.0esr.exe&lt;/a&gt;&lt;br&gt;请注意：Firefox的64位版本仅支持 Windows 7 及更高版本。&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;/p&gt;</description><pubDate>Tue, 29 Sep 2026 14:31:55 +0800</pubDate></item><item><title>Python删除代码中的空行和#注释行</title><link>https://www.88660088.xyz/index.php/post/1611.html</link><description>&lt;p style=&quot;text-align: start;&quot;&gt;✅ &lt;strong&gt;处理多个空行&lt;/strong&gt;：&lt;/p&gt;&lt;ul&gt;&lt;li style=&quot;text-align: start;&quot;&gt;多个连续空行合并为一个空行&lt;/li&gt;&lt;li style=&quot;text-align: start;&quot;&gt;保留必要的代码分隔空行&lt;/li&gt;&lt;li style=&quot;text-align: start;&quot;&gt;不会过度压缩空行&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: start;&quot;&gt;✅ &lt;strong&gt;删除的注释&lt;/strong&gt;：&lt;/p&gt;&lt;ul&gt;&lt;li style=&quot;text-align: start;&quot;&gt;整行注释：# 这是一个注释&lt;/li&gt;&lt;li style=&quot;text-align: start;&quot;&gt;行内注释：vlan_info_cache = {} # 格式: {device_ip: {...}}&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: start;&quot;&gt;✅ &lt;strong&gt;保留的内容&lt;/strong&gt;：&lt;/p&gt;&lt;ul&gt;&lt;li style=&quot;text-align: start;&quot;&gt;文件头特殊注释&lt;/li&gt;&lt;li style=&quot;text-align: start;&quot;&gt;字符串中的#号&lt;/li&gt;&lt;li style=&quot;text-align: start;&quot;&gt;单个空行（用于代码分隔）&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: start;&quot;&gt;&lt;br&gt;&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;import os
import re

def remove_all_comments_keep_single_empty_line():
    &quot;&quot;&quot;
    删除所有注释，多个空行合并为一个空行
    &quot;&quot;&quot;
    current_dir = os.getcwd()
    print(f&quot;当前目录: {current_dir}&quot;)
    
    # 查找当前目录下的所有py文件
    py_files = [f for f in os.listdir(current_dir) 
               if f.endswith(&#039;.py&#039;) and f != os.path.basename(__file__)]
    
    if not py_files:
        print(&quot;当前目录下没有找到Python文件！&quot;)
        return
    
    print(f&quot;\n找到 {len(py_files)} 个Python文件:&quot;)
    for i, file in enumerate(py_files, 1):
        print(f&quot;  {i}. {file}&quot;)
    
    # 确认操作
    confirm = input(f&quot;\n是否继续清理这些文件的所有注释？(y/n): &quot;).strip().lower()
    if confirm != &#039;y&#039;:
        print(&quot;操作已取消&quot;)
        return
    
    backup = input(&quot;是否创建备份文件？(y/n): &quot;).strip().lower() == &#039;y&#039;
    
    print(&quot;\n开始处理文件...&quot;)
    
    for file in py_files:
        print(f&quot;\n处理文件: {file}&quot;)
        try:
            success = process_file_remove_comments_single_empty_line(file, backup)
            if success:
                print(f&quot;✓ 完成: {file}&quot;)
            else:
                print(f&quot;✗ 失败: {file}&quot;)
        except Exception as e:
            print(f&quot;✗ 错误: {file} - {e}&quot;)

def process_file_remove_comments_single_empty_line(file_path, backup):
    &quot;&quot;&quot;
    处理单个文件，删除注释，多个空行合并为一个空行
    &quot;&quot;&quot;
    # 读取文件
    with open(file_path, &#039;r&#039;, encoding=&#039;utf-8&#039;) as file:
        lines = file.readlines()
    
    # 创建备份
    if backup:
        backup_path = file_path + &#039;.bak&#039;
        with open(backup_path, &#039;w&#039;, encoding=&#039;utf-8&#039;) as backup_file:
            backup_file.writelines(lines)
        print(f&quot;  已创建备份: {backup_path}&quot;)
    
    # 需要保留的特殊注释模式（文件头部）
    preserve_patterns = [
        r&#039;^# -\*- coding:.*-\*-&#039;,  # 编码声明
        r&#039;^#.*coding:.*utf-8&#039;,     # 编码声明变体
        r&#039;^#!.*python&#039;,            # shebang
        r&#039;^#.*env python&#039;,         # shebang变体
    ]
    
    def should_preserve(line):
        &quot;&quot;&quot;检查是否应该保留这行（文件头特殊注释）&quot;&quot;&quot;
        line_stripped = line.strip()
        if line_stripped.startswith(&#039;#&#039;):
            for pattern in preserve_patterns:
                if re.match(pattern, line_stripped, re.IGNORECASE):
                    return True
        return False
    
    def remove_inline_comment(line):
        &quot;&quot;&quot;
        移除行内注释，但保留字符串中的#号
        &quot;&quot;&quot;
        # 如果是空行，直接返回
        if not line.strip():
            return line
        
        # 如果是应该保留的文件头注释，直接返回
        if should_preserve(line):
            return line
        
        in_single_quote = False
        in_double_quote = False
        in_triple_single = False
        in_triple_double = False
        escaped = False
        
        result = []
        i = 0
        n = len(line)
        
        while i &amp;lt; n:
            char = line[i]
            
            # 处理转义字符
            if char == &#039;\\&#039; and not escaped:
                escaped = True
                result.append(char)
                i += 1
                continue
            
            # 处理字符串状态
            if not escaped:
                # 三重单引号
                if not in_double_quote and not in_triple_double and i + 2 &amp;lt; n and line[i:i+3] == &quot;&#039;&#039;&#039;&quot;:
                    in_triple_single = not in_triple_single
                    result.append(&quot;&#039;&#039;&#039;&quot;)
                    i += 2
                # 三重双引号
                elif not in_single_quote and not in_triple_single and i + 2 &amp;lt; n and line[i:i+3] == &#039;&quot;&quot;&quot;&#039;:
                    in_triple_double = not in_triple_double
                    result.append(&#039;&quot;&quot;&quot;&#039;)
                    i += 2
                # 单引号
                elif not in_double_quote and not in_triple_single and not in_triple_double and char == &quot;&#039;&quot;:
                    in_single_quote = not in_single_quote
                    result.append(char)
                # 双引号
                elif not in_single_quote and not in_triple_single and not in_triple_double and char == &#039;&quot;&#039;:
                    in_double_quote = not in_double_quote
                    result.append(char)
                # 注释开始（不在字符串中）
                elif char == &#039;#&#039; and not in_single_quote and not in_double_quote and not in_triple_single and not in_triple_double:
                    # 找到注释开始，删除行剩余部分
                    break
                else:
                    result.append(char)
            else:
                result.append(char)
                escaped = False
            
            i += 1
        
        cleaned_content = &#039;&#039;.join(result)
        # 保留原始行的换行符
        if line.endswith(&#039;\n&#039;):
            return cleaned_content.rstrip() + &#039;\n&#039;
        else:
            return cleaned_content.rstrip()
    
    # 第一步：移除注释
    intermediate_lines = []
    removed_comments = []
    
    for line in lines:
        if should_preserve(line):
            # 保留文件头特殊注释
            intermediate_lines.append(line)
        elif line.strip() and line.strip().startswith(&#039;#&#039;):
            # 整行注释，替换为空行但保留换行符
            removed_comments.append(line.strip())
            if line.endswith(&#039;\n&#039;):
                intermediate_lines.append(&#039;\n&#039;)
            else:
                intermediate_lines.append(&#039;&#039;)
        else:
            # 处理其他行（可能包含行内注释）
            cleaned_line = remove_inline_comment(line)
            intermediate_lines.append(cleaned_line)
    
    # 第二步：合并多个连续空行为一个空行
    cleaned_lines = []
    previous_was_empty = False
    
    for line in intermediate_lines:
        is_empty = not line.strip()  # 检查是否是空行
        
        if is_empty:
            if not previous_was_empty:
                # 第一个空行，保留
                cleaned_lines.append(line)
                previous_was_empty = True
            else:
                # 连续的空行，跳过
                continue
        else:
            # 非空行
            cleaned_lines.append(line)
            previous_was_empty = False
    
    # 写回文件
    with open(file_path, &#039;w&#039;, encoding=&#039;utf-8&#039;) as file:
        file.writelines(cleaned_lines)
    
    # 统计
    original_line_count = len(lines)
    cleaned_line_count = len(cleaned_lines)
    removed_comment_count = len(removed_comments)
    
    # 计算合并的空行数
    original_empty_count = len([line for line in lines if not line.strip()])
    cleaned_empty_count = len([line for line in cleaned_lines if not line.strip()])
    merged_empty_count = original_empty_count - cleaned_empty_count
    
    print(f&quot;  原始行数: {original_line_count}, 清理后行数: {cleaned_line_count}&quot;)
    print(f&quot;  移除了 {removed_comment_count} 行注释&quot;)
    if merged_empty_count &amp;gt; 0:
        print(f&quot;  合并了 {merged_empty_count} 个空行&quot;)
    
    # 显示被删除的注释示例
    if removed_comments:
        print(&quot;  删除的注释示例:&quot;)
        for i, comment in enumerate(removed_comments[:3]):
            print(f&quot;    - {comment}&quot;)
        if len(removed_comments) &amp;gt; 3:
            print(f&quot;    ... 还有 {len(removed_comments) - 3} 行&quot;)
    
    return True

def preview_comments_removal_single_empty_line():
    &quot;&quot;&quot;
    预览注释删除，多个空行合并为一个
    &quot;&quot;&quot;
    current_dir = os.getcwd()
    py_files = [f for f in os.listdir(current_dir) 
               if f.endswith(&#039;.py&#039;) and f != os.path.basename(__file__)]
    
    if not py_files:
        print(&quot;当前目录下没有找到Python文件！&quot;)
        return
    
    print(f&quot;\n找到 {len(py_files)} 个Python文件:&quot;)
    for i, file in enumerate(py_files, 1):
        print(f&quot;  {i}. {file}&quot;)
    
    file_choice = input(&quot;\n请输入要预览的文件编号: &quot;).strip()
    try:
        file_index = int(file_choice) - 1
        if 0 &amp;lt;= file_index &amp;lt; len(py_files):
            file_path = py_files[file_index]
            preview_file_comments_single_empty_line(file_path)
        else:
            print(&quot;无效的文件编号！&quot;)
    except ValueError:
        print(&quot;请输入有效的数字！&quot;)

def preview_file_comments_single_empty_line(file_path):
    &quot;&quot;&quot;
    预览单个文件的注释删除，多个空行合并为一个
    &quot;&quot;&quot;
    with open(file_path, &#039;r&#039;, encoding=&#039;utf-8&#039;) as file:
        original_lines = file.readlines()
    
    # 需要保留的特殊注释模式
    preserve_patterns = [
        r&#039;^# -\*- coding:.*-\*-&#039;,
        r&#039;^#.*coding:.*utf-8&#039;,
        r&#039;^#!.*python&#039;,
        r&#039;^#.*env python&#039;,
    ]
    
    def should_preserve(line):
        line_stripped = line.strip()
        if line_stripped.startswith(&#039;#&#039;):
            for pattern in preserve_patterns:
                if re.match(pattern, line_stripped, re.IGNORECASE):
                    return True
        return False
    
    def remove_inline_comment_simple(line):
        &quot;&quot;&quot;简化版的行内注释移除&quot;&quot;&quot;
        if not line.strip() or should_preserve(line):
            return line
        
        in_string = False
        string_char = None
        result = []
        i = 0
        n = len(line)
        
        while i &amp;lt; n:
            char = line[i]
            
            if char in (&#039;&quot;&#039;, &quot;&#039;&quot;) and not in_string:
                in_string = True
                string_char = char
                result.append(char)
            elif in_string and char == string_char:
                in_string = False
                string_char = None
                result.append(char)
            elif char == &#039;#&#039; and not in_string:
                break
            else:
                result.append(char)
            
            i += 1
        
        cleaned_content = &#039;&#039;.join(result)
        if line.endswith(&#039;\n&#039;):
            return cleaned_content.rstrip() + &#039;\n&#039;
        else:
            return cleaned_content.rstrip()
    
    # 第一步：移除注释
    intermediate_lines = []
    for line in original_lines:
        if should_preserve(line):
            intermediate_lines.append(line)
        elif line.strip() and line.strip().startswith(&#039;#&#039;):
            # 整行注释，替换为空行
            if line.endswith(&#039;\n&#039;):
                intermediate_lines.append(&#039;\n&#039;)
            else:
                intermediate_lines.append(&#039;&#039;)
        else:
            cleaned_line = remove_inline_comment_simple(line)
            intermediate_lines.append(cleaned_line)
    
    # 第二步：合并多个连续空行为一个空行
    cleaned_lines = []
    previous_was_empty = False
    
    for line in intermediate_lines:
        is_empty = not line.strip()
        
        if is_empty:
            if not previous_was_empty:
                cleaned_lines.append(line)
                previous_was_empty = True
        else:
            cleaned_lines.append(line)
            previous_was_empty = False
    
    print(f&quot;\n{&#039;=&#039;*60}&quot;)
    print(f&quot;文件: {file_path}&quot;)
    print(f&quot;{&#039;=&#039;*60}&quot;)
    
    # 显示清理前后的对比
    print(f&quot;\n{&#039;=&#039;*30} 清理前 {&#039;=&#039;*30}&quot;)
    display_count = 0
    line_number = 0
    empty_line_count = 0
    for line in original_lines:
        if display_count &amp;lt; 25:
            if not line.strip():
                empty_line_count += 1
                if empty_line_count &amp;lt;= 3:  # 只标记前3个空行
                    print(f&quot;{line_number+1:3d}: [空行]&quot;)
                else:
                    print(f&quot;{line_number+1:3d}: {line.rstrip()}&quot;)
            elif line.strip() and &#039;#&#039; in line and not should_preserve(line):
                if line.strip().startswith(&#039;#&#039;):
                    print(f&quot;\033[91m{line_number+1:3d}: {line.rstrip()}\033[0m&quot;)
                else:
                    highlighted = re.sub(r&#039;(#.*)$&#039;, r&#039;\033[91m\1\033[0m&#039;, line.rstrip())
                    print(f&quot;{line_number+1:3d}: {highlighted}&quot;)
            else:
                print(f&quot;{line_number+1:3d}: {line.rstrip()}&quot;)
            display_count += 1
        line_number += 1
    
    if len(original_lines) &amp;gt; 25:
        print(&quot;... (仅显示前25行)&quot;)
    
    print(f&quot;\n{&#039;=&#039;*30} 清理后 {&#039;=&#039;*30}&quot;)
    display_count = 0
    line_number = 0
    for line in cleaned_lines:
        if display_count &amp;lt; 25:
            if not line.strip():
                print(f&quot;{line_number+1:3d}: [空行]&quot;)
            else:
                print(f&quot;{line_number+1:3d}: {line.rstrip()}&quot;)
            display_count += 1
        line_number += 1
    
    if len(cleaned_lines) &amp;gt; 25:
        print(&quot;... (仅显示前25行)&quot;)
    
    # 统计
    original_comments = len([line for line in original_lines 
                           if line.strip() and &#039;#&#039; in line and not should_preserve(line)])
    cleaned_comments = len([line for line in cleaned_lines 
                          if line.strip() and &#039;#&#039; in line and not should_preserve(line)])
    
    original_empty = len([line for line in original_lines if not line.strip()])
    cleaned_empty = len([line for line in cleaned_lines if not line.strip()])
    
    print(f&quot;\n统计信息:&quot;)
    print(f&quot;  移除注释数量: {original_comments - cleaned_comments}&quot;)
    print(f&quot;  空行数量: {original_empty} -&amp;gt; {cleaned_empty}&quot;)
    print(f&quot;  合并空行数量: {original_empty - cleaned_empty}&quot;)
    print(f&quot;  总行数变化: {len(original_lines)} -&amp;gt; {len(cleaned_lines)}&quot;)
    
    confirm = input(&quot;\n是否应用更改？(y/n): &quot;).strip().lower()
    if confirm == &#039;y&#039;:
        with open(file_path, &#039;w&#039;, encoding=&#039;utf-8&#039;) as file:
            file.writelines(cleaned_lines)
        print(f&quot;已清理文件: {file_path}&quot;)

if __name__ == &quot;__main__&quot;:
    print(&quot;Python注释清理工具 (合并空行版)&quot;)
    print(&quot;=&quot; * 50)
    print(&quot;功能:&quot;)
    print(&quot;  - 删除所有整行注释和行内注释&quot;)
    print(&quot;  - 多个连续空行合并为一个空行&quot;)
    print(&quot;  - 保留文件头特殊注释&quot;)
    print(&quot;  - 保留字符串中的#号&quot;)
    print(&quot;\n示例:&quot;)
    print(&quot;  ✓ 3个连续空行 → 1个空行&quot;)
    print(&quot;  ✓ 保留必要的代码分隔空行&quot;)
    
    while True:
        print(&quot;\n请选择操作:&quot;)
        print(&quot;1. 清理当前目录所有Python文件的所有注释&quot;)
        print(&quot;2. 预览文件更改（合并空行）&quot;)
        print(&quot;3. 退出&quot;)
        
        choice = input(&quot;\n请输入选择 (1-3): &quot;).strip()
        
        if choice == &#039;1&#039;:
            remove_all_comments_keep_single_empty_line()
        elif choice == &#039;2&#039;:
            preview_comments_removal_single_empty_line()
        elif choice == &#039;3&#039;:
            print(&quot;再见！&quot;)
            break
        else:
            print(&quot;无效选择，请重新输入&quot;)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;</description><pubDate>Sun, 16 Nov 2025 18:11:41 +0800</pubDate></item><item><title>谷歌 Chrome 浏览器显示“贵单位管理状态” 的彻底解决方法！</title><link>https://www.88660088.xyz/index.php/post/1610.html</link><description>&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;pre&gt;&lt;code &gt;@echo off

echo Closing Google Chrome...
taskkill /F /IM chrome.exe /T &amp;gt; nul
echo.

IF NOT EXIST &quot;%WINDIR%\System32\GroupPolicy&quot; goto next

echo Deleting GroupPolicy folder...
RD /S /Q &quot;%WINDIR%\System32\GroupPolicy&quot; || goto error
echo.

:next
IF NOT EXIST &quot;%WINDIR%\System32\GroupPolicyUsers&quot; goto next2

echo Deleting GroupPolicyUsers folder...
RD /S /Q &quot;%WINDIR%\System32\GroupPolicyUsers&quot; || goto error
echo.

:next2
IF NOT EXIST &quot;%ProgramFiles(x86)%\Google\Policies&quot; goto next3

echo Deleting GroupPolicyUsers folder...
RD /S /Q &quot;%ProgramFiles(x86)%\Google\Policies&quot; || goto error

:next3
IF NOT EXIST &quot;%ProgramFiles%\Google\Policies&quot; goto next4

echo Deleting GroupPolicyUsers folder...
RD /S /Q &quot;%ProgramFiles%\Google\Policies&quot; || goto error

:next4
gpupdate /force

echo Deleting policies from Windows registries...
reg delete HKEY_LOCAL_MACHINE\Software\Policies\Google\Chrome /f
reg delete HKEY_LOCAL_MACHINE\Software\Policies\Google\Update /f
reg delete HKEY_LOCAL_MACHINE\Software\Policies\Chromium /f
reg delete HKEY_LOCAL_MACHINE\Software\Google\Chrome /f
reg delete HKEY_LOCAL_MACHINE\Software\WOW6432Node\Google\Enrollment /f
reg delete HKEY_CURRENT_USER\Software\Policies\Google\Chrome /f
reg delete HKEY_CURRENT_USER\Software\Policies\Chromium /f
reg delete HKEY_CURRENT_USER\Software\Google\Chrome /f
reg delete &quot;HKEY_LOCAL_MACHINE\Software\WOW6432Node\Google\Update\ClientState\{430FD4D0-B729-4F61-AA34-91526481799D}&quot; /v &quot;CloudManagementEnrollmentToken&quot; /f

pause
exit

:error
echo.
echo An unexpected error has occurred. �Have opened the program as an administrator (right click, run as administrator)?
echo.
pause
exit&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;</description><pubDate>Sun, 16 Nov 2025 16:51:14 +0800</pubDate></item><item><title>问题：HP LaserJet 1020使用OpenWrt安装CUPS后打印机断电重启之后无法使用</title><link>https://www.88660088.xyz/index.php/post/1608.html</link><description>&lt;p&gt;问题原因:&lt;/p&gt;&lt;p&gt;经查证发现HP1020存在&lt;strong&gt;两个特殊设计&lt;/strong&gt;：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;专为Windows设计的驱动架构，Linux支持不完善&lt;/li&gt;&lt;li&gt;&lt;code&gt;&lt;strong&gt;无内置闪存，每次开机需通过/dev/usb/lp0接口写入固件&lt;/strong&gt;&lt;/code&gt;&lt;/li&gt;&lt;li&gt;解决方法：&lt;/li&gt;&lt;li&gt;方法1、打印机插到Windows电脑上使用一次在插到OpenWrt的USB口上即可，但是断电之后又无法使用&lt;/li&gt;&lt;li&gt;方法2、拷贝sihp1020.dl文件到openwrt的/etc目录&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(255, 0, 0); background-color: rgb(255, 255, 255); font-size: 24px; font-family: 楷体;&quot;&gt;最终解决方法：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(255, 0, 0); background-color: rgb(255, 255, 255); font-size: 24px; font-family: 楷体;&quot;&gt;编写hp1020.sh文件&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;code &gt;vi  /etc/hp1020.sh
cat /etc/sihp1020.dl &amp;gt;&amp;gt;/dev/usb/lp0
chmod +x /etc/hp1020.sh
bash /etc/hp1020.sh&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(255, 0, 0); background-color: rgb(255, 255, 255); font-size: 24px; font-family: 楷体;&quot;&gt;启动项-本地启动脚本 把启动项加进去OpenWRT的即可&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;code &gt;# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.
sleep 5
bash /etc/hp1020.sh
exit 0&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;</description><pubDate>Fri, 17 Oct 2025 12:43:03 +0800</pubDate></item><item><title>clash延迟优化</title><link>https://www.88660088.xyz/index.php/post/1609.html</link><description>&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;pre&gt;&lt;code &gt;# 统一延迟
# 更换延迟计算方式,去除握手等额外延迟
unified-delay: true
# TCP 并发
# 同时对所有ip进行连接，返回延迟最低的地址
tcp-concurrent: true&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-size: 16px;&quot;&gt;/etc/log/app_dir/clash/bin/yamls/user.yaml&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;code &gt;echo &#039;unified-delay: true&#039; | tee -a /etc/log/app_dir/clash/bin/yamls/user.yaml
echo &#039;tcp-concurrent: true&#039; | tee -a /etc/log/app_dir/clash/bin/yamls/user.yaml
cat /etc/log/app_dir/clash/bin/yamls/user.yaml
crash -s stop
crash -s start&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;</description><pubDate>Wed, 13 Aug 2025 16:49:01 +0800</pubDate></item><item><title>VPS常用脚本收集</title><link>https://www.88660088.xyz/index.php/post/1605.html</link><description>&lt;h3&gt;1、科技lion一键脚本工具&lt;/h3&gt;&lt;p style=&quot;text-align: start;&quot;&gt;科技Lion 的 Shell 脚本工具是一款全能脚本工具箱，专为 VPS 监控、测试和管理而设计。无论您是初学者还是经验丰富的用户，该工具都能为您提供便捷的解决方案。集成了独创的 Docker 管理功能，让您轻松管理容器化应用；LNMP建站解决方案 能帮助您快速搭建网站，站点优化，防御，备份还原迁移一应俱全；并且整合了各类系统工具面板的安装及使用，使系统维护变得更加简单。我们的目标是成为全网最优秀的 VPS 一键脚本工具，为用户提供高效、便捷的科技支持。&lt;/p&gt;&lt;p style=&quot;text-align: start;&quot;&gt;支持的系统&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;Ubuntu Debian CentOS Alpine Kali Arch RedHat Fedora Alma Rocky&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;text-align: start;&quot;&gt;一键脚本&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt; bash &amp;lt;(curl -sL kejilion.sh)&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;2、&lt;span style=&quot;color: rgb(68, 68, 68); background-color: rgb(255, 255, 255); font-size: 14px;&quot;&gt;VPS一键脚本工具箱&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(31, 35, 40); background-color: rgb(255, 255, 255); font-size: 16px;&quot;&gt;集成各种vps常用工具，去掉繁琐操作，加入常用节点搭建脚本合集，一键母鸡开nat小鸡，一建脚本搞定所有，&lt;/span&gt;&lt;span style=&quot;color: rgb(225, 60, 57); background-color: rgb(255, 255, 255); font-size: 16px;&quot;&gt;需要扶墙才能下载，&lt;/span&gt;作者开源地址： &lt;a href=&quot;https://github.com/eooce/ssh_tool&quot; target=&quot;_blank&quot;&gt;https://github.com/eooce/ssh_tool&lt;/a&gt; &lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;bash &amp;lt;(curl -fsSL ssh_tool.eooce.com)
提示：
若提示没有curl或wget，先安装即可
Ubuntu/Debian：apt-get install -y curl wget
Alpine：apk add curl wget
Fedora：dnf install -y curl wget
CentOS/Rocky/Almalinux/Oracle-linux/Amazon-linux：yum install -y curl wget&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;3、服务器综合测试脚本（融合怪）&lt;/h3&gt;&lt;p style=&quot;text-align: start;&quot;&gt;这个脚本融合了不少功能，也可以提供全方位的测试（包含基础性能检测、IP 质量检测、回程测试、流媒体测试）。作者开源地址：&lt;a href=&quot;https://github.com/spiritLHLS/ecs&quot; target=&quot;_blank&quot;&gt;GitHub开源地址&lt;/a&gt;&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -L https://gitlab.com/spiritysdx/za/-/raw/main/ecs.sh -o ecs.sh &amp;&amp; chmod +x ecs.sh &amp;&amp; bash ecs.sh
&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;4、acme生成免费证书&lt;/h3&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl https://get.acme.sh | sh&lt;/code&gt;&lt;/pre&gt;&lt;h4&gt;5、流媒体解锁测试专项&lt;/h4&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;bash &amp;lt;(curl -L -s https://netflix.dad/detect-script)
&lt;/code&gt;&lt;/pre&gt;&lt;h4&gt;6、linux更新相关&lt;/h4&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;apt-get update                  // 更新安装源（Source）
apt-get upgrade                 // 更新已安装的软件包
apt-get dist-upgrade            // 更新已安装的软件包（识别并处理依赖关系的改变）&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;</description><pubDate>Fri, 21 Mar 2025 11:13:57 +0800</pubDate></item><item><title>将Ollama安装、迁移到其它磁盘教程</title><link>https://www.88660088.xyz/index.php/post/1604.html</link><description>&lt;h4&gt;1. 准备工作&lt;/h4&gt;&lt;p&gt;选择一个目标磁盘分区，例如 D: 盘，并在该分区下创建一个用于安装 Ollama 的文件夹，例如 D:\ollama。&lt;/p&gt;&lt;h4&gt;2. 下载 Ollama&lt;/h4&gt;&lt;p&gt;访问 Ollama 的官网下载 https://ollama.com/download&lt;/p&gt;&lt;h4&gt;3. 安装&lt;/h4&gt;&lt;p&gt;运行OllamaSetup.exe进行安装&lt;/p&gt;&lt;h4&gt;4. 验证安装&lt;/h4&gt;&lt;pre&gt;&lt;code &gt;ollama --version&lt;/code&gt;&lt;/pre&gt;&lt;h4&gt;5.复制文件&lt;/h4&gt;&lt;p&gt;在目标磁盘新建Ollama目录假设为D盘，将以下目录复制到新建的目录&lt;/p&gt;&lt;pre&gt;&lt;code &gt;C:\Users\Windows用户名\.ollama                           D:\Ollama\.ollama
C:\Users\Windows用户名\AppData\Local\Ollama              D:\Ollama\log
C:\Users\Windows用户名\AppData\Local\Programs\Ollama     D:\Ollama\app&lt;/code&gt;&lt;/pre&gt;&lt;h4&gt;6、删除旧文件夹&lt;/h4&gt;&lt;p&gt;删除原来C盘三个路径的旧目录&lt;/p&gt;&lt;h4&gt;7、创建符号链接&lt;/h4&gt;&lt;pre&gt;&lt;code &gt;mklink /D C:\Users\Windows用户名\.ollama D:\Ollama\.ollama
mklink /D C:\Users\Windows用户名\AppData\Local\Ollama D:\Ollama\log
mklink /D C:\Users\Windows用户名\AppData\Local\Programs\Ollama D:\Ollama\app&lt;/code&gt;&lt;/pre&gt;&lt;h4&gt;8、添加环境变量&lt;/h4&gt;&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;按下 Win + R 组合键，输入 sysdm.cpl 并回车，打开 “系统属性” 窗口。&lt;/p&gt;&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;在 “系统属性” 窗口中，点击 “高级” 选项卡，然后点击 “环境变量” 按钮。&lt;/p&gt;&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;添加以下环境变量 &lt;/p&gt;&lt;pre&gt;&lt;code &gt;PATH D:\Ollama\app
OLLAMA_HOST 0.0.0.0
OLLAMA_MODELS D:\Ollama\.ollama\models&lt;/code&gt;&lt;/pre&gt;&lt;h4&gt;9、验证结果&lt;/h4&gt;&lt;p&gt;CMD执行Ollama&lt;/p&gt;&lt;pre&gt;&lt;code &gt;C:\Users\Administrator&amp;gt;Ollama list
NAME                                    ID              SIZE      MODIFIED
deepseek-coder-v2:latest                63fb193b3a9b    8.9 GB    13 minutes ago
huihui_ai/qwen2.5-abliterate:latest     103482475c9b    4.7 GB    About an hour ago
huihui_ai/deepseek-r1-abliterated:7b    9e25a373f069    4.7 GB    About an hour ago
deepseek-r1:7b                          0a8c26691023    4.7 GB    About an hour ago&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;附录 一键操作批处理如下：&lt;/p&gt;&lt;pre&gt;&lt;code &gt;@echo off
rem 确保以管理员权限运行
net session &amp;gt;nul 2&amp;gt;&amp;1
if %errorLevel% neq 0 (
    echo 此脚本需要以管理员权限运行，请右键选择“以管理员身份运行”。
    pause
    exit /b 1
)

rem 定义原目录，使用系统环境变量
set &quot;sourceDir1=%USERPROFILE%\.ollama&quot;
set &quot;sourceDir2=%USERPROFILE%\AppData\Local\Ollama&quot;
set &quot;sourceDir3=%USERPROFILE%\AppData\Local\Programs\Ollama&quot;

rem 提示用户输入目标盘符
set /p targetDrive=请输入目标盘符（例如：I:）：

rem 定义新目录
set &quot;targetDir1=%targetDrive%\Ollama\.ollama&quot;
set &quot;targetDir2=%targetDrive%\Ollama\log&quot;
set &quot;targetDir3=%targetDrive%\Ollama\app&quot;

rem 创建目标目录（如果不存在）
if not exist &quot;%targetDir1%&quot; mkdir &quot;%targetDir1%&quot;
if not exist &quot;%targetDir2%&quot; mkdir &quot;%targetDir2%&quot;
if not exist &quot;%targetDir3%&quot; mkdir &quot;%targetDir3%&quot;

rem 拷贝原目录文件和文件夹到新目录
xcopy /E /I /Y /H &quot;%sourceDir1%\*&quot; &quot;%targetDir1%\&quot;
xcopy /E /I /Y /H &quot;%sourceDir2%\*&quot; &quot;%targetDir2%\&quot;
xcopy /E /I /Y /H &quot;%sourceDir3%\*&quot; &quot;%targetDir3%\&quot;

rem 删除原有的目录
rmdir /s /q &quot;%sourceDir1%&quot; 2&amp;gt;nul
rmdir /s /q &quot;%sourceDir2%&quot; 2&amp;gt;nul
rmdir /s /q &quot;%sourceDir3%&quot; 2&amp;gt;nul

rem 创建符号链接
mklink /D &quot;%sourceDir1%&quot; &quot;%targetDir1%&quot;
mklink /D &quot;%sourceDir2%&quot; &quot;%targetDir2%&quot;
mklink /D &quot;%sourceDir3%&quot; &quot;%targetDir3%&quot;

rem 将新的app目录添加到系统环境变量PATH中
setx PATH &quot;%PATH%;%targetDir3%&quot; /M

rem 添加OLLAMA_HOST环境变量
setx OLLAMA_HOST &quot;0.0.0.0&quot; /M

rem 添加OLLAMA_MODELS环境变量，使用之前定义的环境变量来定义路径
setx OLLAMA_MODELS &quot;%targetDir1%\models&quot; /M

echo 操作完成。
pause&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;</description><pubDate>Sat, 08 Feb 2025 12:07:34 +0800</pubDate></item><item><title>eNSP启动报“请将eNSP相关应用程序添加到windows firewall的允许程序列表，并允许其在公用网络上运行!”的解决办法</title><link>https://www.88660088.xyz/index.php/post/1603.html</link><description>&lt;p&gt;&lt;span style=&quot;font-size:16px;font-family:华文细黑;color:#4D4D4D&quot;&gt;最近使用ENSP每次启动后老弹出“请将eNSP相关应用程序添加到windows firewall的允许程序列表，并允许其在公用网络上运行!”比较烦人！&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:16px;font-family:华文细黑;color:#4D4D4D&quot;&gt;究其原因就是windows10系统防火墙的访问策略未允许eNSP的相关程序通过，导致程序部分功能被阻止，在日常的学习和实验过程中，会出现设备无法正常启用配置、报错等情况。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.88660088.xyz/zb_users/upload/2024/10/bc4973965d0129c811d6bff1bfdd69e9.png&quot; alt=&quot;bc4973965d0129c811d6bff1bfdd69e9.png&quot; title=&quot;bc4973965d0129c811d6bff1bfdd69e9.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:16px;font-family:华文细黑;color:#4D4D4D&quot;&gt;解决方法：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:16px;font-family:华文细黑;color:#4D4D4D&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;font-size:16px;font-family:华文细黑;color:#4D4D4D&quot;&gt;、按下Win+R键打开运行对话框，输入firewall.cpl，然后点击“确定”按钮。在弹出的窗口中，选择“选择允许或功能通过Windows Defender防火墙”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.88660088.xyz/zb_users/upload/2024/10/58d13196be418623700cbd1a23f7dab9.png&quot; alt=&quot;58d13196be418623700cbd1a23f7dab9.png&quot; title=&quot;58d13196be418623700cbd1a23f7dab9.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:16px;font-family:华文细黑;color:#4D4D4D&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;font-size:16px;font-family:华文细黑;color:#4D4D4D&quot;&gt;、选择”允许其他应用&lt;/span&gt;”&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.88660088.xyz/zb_users/upload/2024/10/3c0245bdf9c6d656427fef1bd55c254a.png&quot; alt=&quot;3c0245bdf9c6d656427fef1bd55c254a.png&quot; title=&quot;a50612fdb4ec87c1225e3374256b0b28.png&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;background:white&quot;&gt;&lt;span style=&quot;font-family:华文细黑;color:#4D4D4D&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;font-family:华文细黑;color:#4D4D4D&quot;&gt;、根据程序安装的路径，&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.88660088.xyz/zb_users/upload/2024/10/410a09f0889a347d9604e85d6adcfcaf.png&quot; style=&quot;&quot; title=&quot;410a09f0889a347d9604e85d6adcfcaf.png&quot;/&gt;&lt;img src=&quot;https://www.88660088.xyz/zb_users/upload/2024/10/a50612fdb4ec87c1225e3374256b0b28.png&quot; title=&quot;a50612fdb4ec87c1225e3374256b0b28.png&quot; style=&quot;font-family: var(--fr-font-family),var(--fr-font-basefont); -webkit-text-stroke: var(--fr-font-stroke);&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;margin-top:0;margin-right:0;margin-bottom:16px;margin-left: 0;background:white&quot;&gt;&amp;nbsp;&lt;span style=&quot;color: #4D4D4D; font-family: 华文细黑; -webkit-text-stroke: var(--fr-font-stroke);&quot;&gt;将/eNSP/eNSP_Client.exe和&amp;nbsp;/eNSP/vboxserver/eNSP_VBoxServer.exe添加进去&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-bottom:16px;background:white&quot;&gt;&lt;img src=&quot;https://www.88660088.xyz/zb_users/upload/2024/10/5ad909bf33bbbba591d9a72f44ecf05b.png&quot; alt=&quot;5ad909bf33bbbba591d9a72f44ecf05b.png&quot; title=&quot;5ad909bf33bbbba591d9a72f44ecf05b.png&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;margin-bottom:16px;background:white&quot;&gt;&lt;span style=&quot;font-size:16px;font-family:华文细黑;color:#4D4D4D&quot;&gt;4&lt;/span&gt;&lt;span style=&quot;font-size:16px;font-family:华文细黑;color:#4D4D4D&quot;&gt;、网络类型将“专用”“公用”全部勾选上，点确定&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-bottom:16px;background:white&quot;&gt;&lt;span style=&quot;font-size:16px;font-family:华文细黑;color:#4D4D4D&quot;&gt;再次启动ENSP就不会报错了！&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Tue, 29 Oct 2024 13:21:30 +0800</pubDate></item></channel></rss>