彻底防止Windows 7/8/8.1升级更新到Windows 10_win7/win8.1不想升级win10-程序员宅基地

技术标签: 操作系统  win7  补丁  

转自 http://wangye.org/blog/archives/1035/

去年7月写过一篇文章讲解如何去除扰人的获取Windows 10的图标,那时候微软也只是推送了获取Windows 10的提示,具体安装Windows 10与否还是有显著的选项让用户自己选择的。

虽然通过先前的方法确实抑制了升级Windows 10的提示,怎奈微软接下来连续放大招推送升级补丁,并且不怎么明显的“诱使”用户升级系统,比如我遇到的微软健康助手提示升级,并且默认勾选同意的坑。其实我不是说Windows 10不好,就是较为反感微软的推送方式,就好像你去商场老是有业务员跟着你,不停向你推荐某某产品好等等,而且因为大部分客户电脑上一些业务系统在Windows 10下存在各种兼容问题,就有客户反应因为不小心升级Windows 10导致业务软件不能正常运行最后只有重新安装老系统(其实对于误安装有办法直接恢复到老系统,方法附本文后)


第一部分,如何防止Windows 7/8/8.1升级到Windows 10

经常有朋友说我思想老顽固了,不愿意去尝试新鲜事物,其实不是不愿意尝试,而是越来越觉得适合自己的才是最好的,不喜欢繁杂的功能,觉得简单才是一种美,好了言归正传,防止老系统升级到Windows 10实际上已经有人开发了软件GWX Control Panel,大家直接下载后运行,再点击即可防止系统升级,用这个软件还有个好处就是可以在想升级的时候再进行恢复,软件简单操作如下。

1、运行下载的GWX Control Panel程序,首先接受并同意须知,如下图所示:

GWX Control Panel - Step 1

2、点击“Prevent Automatic Windows 10 Upgrades”即可禁止自动的Windows 10升级,其他的选项也有特定含义,主要的我翻译如下图所示:

GWX Control Panel - Step 2

其实对于快餐族或者实用主义者来说GWX Control Panel已经足够,所以下面的内容可以忽略,但是我有一颗重复造轮子的心,遂根据我收集的关于禁止升级到Windows 10的相关文献资料,对于禁止升级到Windows 10,大体上分为以下几个步骤:

1、卸载并且隐藏关联更新,这些更新主要包括如下:

通过以下批处理可以完成相关卸载,另存为.bat文件,并右击以管理员身份运行:

@echo on
wusa /uninstall /kb:3035583 /norestart /quiet
wusa /uninstall /kb:3022345 /norestart /quiet
wusa /uninstall /kb:3068708 /norestart /quiet
wusa /uninstall /kb:3075249 /norestart /quiet
wusa /uninstall /kb:3080149 /norestart /quiet
wusa /uninstall /kb:2990214 /norestart /quiet
wusa /uninstall /kb:3012973 /norestart /quiet
wusa /uninstall /kb:2952664 /norestart /quiet
wusa /uninstall /kb:2976978 /norestart /quiet

隐藏相关更新项目,以避免再一次被推送安装,如何隐藏Windows更新,可以通过以下步骤来实现:

(1) 控制面板 – 所有控制面板项 – Windows Update 点击如下图位置(不完全一样,位置相同)找到待更新的项目:

Windows Update

(2) 对更新项目右击,选择“隐藏更新”即可,如下图所示:

Windows Update 隐藏更新

2、修改相关注册表

将下面的注册表相关另存为.reg文件,并且双击导入即可完成修改:

Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\OSUpgrade]
"AllowOSUpgrade"=dword:00000000
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\OSUpgrade\State]
"OSUpgradeState"=dword:00000001
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]
"DisableOSUpgrade"=dword:00000001

3、删除相关文件

删除%SystemRoot%\System32\GWX目录及相关文件,通过以下批处理完成:

del /f /s /a /q %SystemRoot%\System32\GWX

删除已经下载的Windows 10安装包及相关文件,通过以下批处理完成: 

del /f /s /a /q %SystemDrive%\$Windows.~BT
del /f /s /a /q %SystemDrive%\$Windows.~WS

这里解释一下,$WINDOWS.~BT文件夹内容是Windows10预下载镜像,这个文件夹很大因为包含了一个操作系统嘛;$Windows.~WS 文件夹是下载工具MediaCreationTool下载的文件夹,默认保留原先旧系统31天,其实并不建议大家通过以上批处理完成清理过程,可以通过系统自带的“磁盘清理工具”来清理比较好。

磁盘清理工具

经过这么一折腾,你的Windows 7/8/8.1又将恢复安静了,至于什么时候安装Windows 10则完全由个人决定,而不是每天都有人催促和推销(M$表打我)。当然我希望这个过程能够越快越好和越简单越好,对于业余系统维护人员来说,客户电脑越稳定自己要做的工作越少,花费的时间也越少,所以不希望有客户误点升级导致业务软件失效,所以我将上述功能打包成VBScript可执行脚本,只要在不可以升级的系统上运行即可免去误升级的烦恼,当然脚本由于个人能力有限可能存在潜在的Bug,因此带来的问题与本人无关,建议使用前备份相关文件

 

'
' File Description : Disable Windows 7/8/8.1 Upgrade to Windows 10
'
' Copyright (c) 2016 WangYe. All rights reserved.
' 
' Author: WangYe
' Site: http://wangye.org
' This code is distributed under the BSD license
'
' Usage:
'     CScript path/to/this/script
'
' *** 请不要移除此版权信息 ***
'

Option Explicit
 
Class WinUpdateMgr
 
    Private objSession
    Private objCollection
 
    Private Sub Class_Initialize()
        Set objSession = WScript.CreateObject("Microsoft.Update.Session")
        objSession.ClientApplicationID = "Disable Windows 10 Update Script"
        Set objCollection = WScript.CreateObject("Microsoft.Update.UpdateColl")
    End Sub
 
    Private Sub Class_Terminate()
        Set objCollection = Nothing
        Set objSession = Nothing
    End Sub
 
    Public Sub AddToCollection(ByRef objUpdateItem)
        objCollection.Add objUpdateItem
    End Sub
 
    Public Sub ClearCollection()
        objCollection.Clear
    End Sub
 
    Public Function GetCollectionCount()
        GetCollectionCount = objCollection.Count
    End Function
 
    Public Function Install()
        If objCollection.Count > 0 Then
            Dim objInstaller
            Set objInstaller = objSession.CreateUpdateInstaller()
                objInstaller.Updates = objCollection
                Set Install = objInstaller.Install()
                ClearCollection
            Set objInstaller = Nothing
        End If
    End Function
 
    Public Function Uninstall()
        If objCollection.Count > 0 Then
            Dim objInstaller
            Set objInstaller = objSession.CreateUpdateInstaller()
                objInstaller.Updates = objCollection
                Set Uninstall = objInstaller.Uninstall()
                ClearCollection
            Set objInstaller = Nothing
        End If
    End Function
 
    Public Function EnumUpdates(ByVal strCallback, ByVal strQuery, ByRef Param)
        Dim i
        Dim objSearcher, objSearchResult, objUpdateItem
        Dim fnCallback
 
        Set fnCallback = GetRef(strCallback)
        Set objSearcher = objSession.CreateUpdateSearcher()
        Set objSearchResult = objSearcher.Search(strQuery)
 
        For i = 0 To objSearchResult.Updates.Count - 1
            Set objUpdateItem = objSearchResult.Updates.Item(i)
            if fnCallback(objUpdateItem, Me, Param) Then Exit For
            Set objUpdateItem = Nothing
        Next
 
        Set objSearcher = Nothing
        Set objSearchResult = Nothing
        Set fnCallback = Nothing
 
        EnumUpdates = i
    End Function
 
End Class
 
' KB2990967 and KB3035583
Function RemoveUpdateCallback(ByRef objItem, ByRef objThis, ByRef Param)
    Dim i, kbArticleId
    For i = 0 To objItem.KBArticleIDs.Count - 1
        kbArticleId = objItem.KBArticleIDs(i)
        If InStr("," & Param & ",", "," & kbArticleId & ",") Then
            WSH.StdOut.Write "Found " & objItem.Title & " ... "
            If objItem.IsInstalled Then
                WSH.StdOut.Write "Installed"
                WSH.StdOut.Write vbCrLf
                objThis.AddToCollection objItem
            Else
                WSH.StdOut.Write "Not Installed"
                WSH.StdOut.Write vbCrLf
            End If
 
            WSH.StdOut.Write " * Hiding this update now ... "
            objItem.IsHidden = True
            WSH.StdOut.Write " Completed" & vbCrLf
        End If
    Next
End Function
 
Sub RemoveWinUpdates()
    Dim objWUMgr, objUninstallResult
    Set objWUMgr = New WinUpdateMgr
 
        WSH.Echo "Please wait for checking Windows updates ..."
 
        objWUMgr.EnumUpdates "RemoveUpdateCallback", "Type='Software'", _
            "3035583,2952664,3022345,3021917,3068708,3075249,3080149,2990214,3012973,2976978"
        WSH.Echo "---------- Check Completed -----------"
 
        If objWUMgr.GetCollectionCount() > 0 Then
 
            WSH.Echo "Please wait for uninstall Windows updates ..."
            Set objUninstallResult = objWUMgr.Uninstall()
            WSH.Echo "Uninstall completed (ResultCode = " & objUninstallResult.ResultCode & ")"
            If objUninstallResult.RebootRequired > 0 Then
                WSH.Echo "You need restart computer for complete uninstall steps"
            End If
            Set objUninstallResult = Nothing
 
        End If
        WSH.Echo
    Set objWUMgr = Nothing
End Sub
 
Sub UpdateRegistry()
    Const HKLM = &H80000002
    Dim strComputer, objRegistry, strKeyPath
 
    WSH.Echo "Update registry now ..."
    strComputer = "."
    Set objRegistry = GetObject("winmgmts:\\" & _
            strComputer & "\root\default:StdRegProv")
 
    strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\OSUpgrade"
    objRegistry.CreateKey HKLM, strKeyPath
    objRegistry.SetDWORDValue HKLM, strKeyPath, "AllowOSUpgrade", 0
 
    strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\OSUpgrade\State"
    objRegistry.CreateKey HKLM, strKeyPath
    objRegistry.SetDWORDValue HKLM, strKeyPath, "OSUpgradeState", 1
 
    strKeyPath = "SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"
    objRegistry.CreateKey HKLM, strKeyPath
    objRegistry.SetDWORDValue HKLM, strKeyPath, "DisableOSUpgrade", 1
 
    strKeyPath = "SOFTWARE\Policies\Microsoft\Windows\Gwx"
    objRegistry.CreateKey HKLM, strKeyPath
    objRegistry.SetDWORDValue HKLM, strKeyPath, "DisableGwx", 1
 
    WSH.Echo "--------- Update Completed -----------"
    WSH.Echo
    Set objRegistry = Nothing
End Sub
 
Sub DeleteAll(ByRef fso, ByVal strFileName)
    Const DeleteReadonly = True
    Dim objFile, objFolder, objSubFolder
 
    If fso.FileExists(strFileName) Then
        fso.DeleteFile strFileName, True
        Exit Sub
    End If
 
    If fso.FolderExists(strFileName) Then
        Set objFolder = fso.GetFolder(strFileName)
 
        fso.DeleteFile(fso.BuildPath(objFolder.Path, "*")), DeleteReadonly
        fso.DeleteFolder(fso.BuildPath(objFolder.Path, "*")),DeleteReadonly
 
        For Each objFile In objFolder.Files
           On Error Resume Next
           objFile.Delete True
           On Error GoTo 0
        Next
        For Each objSubFolder In objFolder.SubFolders
           On Error Resume Next
           objSubFolder.Delete True
           On Error GoTo 0
        Next
 
        objFolder.Delete True
 
        Set objFolder = Nothing
    End If
 
End Sub
 
Sub DeleteFiles()
    Const WindowsFolder = 0
    Const SystemFolder  = 1
 
    WSH.Echo "Please wait for Clean up unwanted folders or files ..."
    WSH.Echo "--------------------------------------"
 
    Dim objFileSysObj, objFile, strRootDir, strFileName
    Set objFileSysObj = WScript.CreateObject("Scripting.FileSystemObject") 
 
    WSH.Echo "Clean up GWX folder ..."
    Set objFile = objFileSysObj.GetSpecialFolder(SystemFolder)
    strFileName = objFileSysObj.BuildPath(objFile.Path, "GWX")
    DeleteAll objFileSysObj, strFileName
    Set objFile = Nothing
 
    WSH.Echo "Clean up Downloaded Windows 10 folder ..."
    Set objFile = objFileSysObj.GetSpecialFolder(WindowsFolder)
        strRootDir = objFileSysObj.GetParentFolderName(objFile.Path)
        strFileName = objFileSysObj.BuildPath(strRootDir, "$Windows.~BT")
        DeleteAll objFileSysObj, strFileName
        strFileName = objFileSysObj.BuildPath(strRootDir, "$Windows.~WS")
        DeleteAll objFileSysObj, strFileName
    Set objFile = Nothing
 
    WSH.Echo "--------- Clean up Completed ---------"
    WSH.Echo
    Set objFileSysObj = Nothing
End Sub
 
Sub TerminateProcess(ByVal strProcName)
    Const strComputer = "." 
    Dim objWMIService, colProcessList, objProcess
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = '" & strProcName & "'")
    For Each objProcess in colProcessList 
        objProcess.Terminate()
    Next
End Sub
 
Sub KillProcesses()
    WSH.Echo "Terminate process now ..."
 
    WSH.Echo "Kill GWX in process list ..."
    TerminateProcess "GWX.exe"
    TerminateProcess "GWXUX.exe"
    TerminateProcess "Gwxgc.exe"
    TerminateProcess "Gwxconfigmanager.exe"
    TerminateProcess "Gwxdetector.exe"
    TerminateProcess "Gwxuxworker.exe"
    WSH.Echo "-------- Terminate Completed ---------"
    WSH.Echo
End Sub
 
Function CurrentUserIsAdmin()
    Dim objNetwork, strComputer, strUser, objUser, objGroup
    Set objNetwork = CreateObject("Wscript.Network")
    strComputer = objNetwork.ComputerName
    strUser = objNetwork.UserName
 
    CurrentUserIsAdmin = False
 
    Set objGroup = GetObject("WinNT://" & strComputer & "/Administrators")
    For Each objUser in objGroup.Members
        If objUser.Name = strUser Then
            CurrentUserIsAdmin = True  
            Exit Function
        End If
    Next
End Function
 
' http://stackoverflow.com/questions/4765485/how-to-force-vbs-script-to-run-in-cscript-host
' http://stackoverflow.com/questions/4692542/force-a-vbs-to-run-using-cscript-instead-of-wscript
Sub ForceCScriptExecution(ByVal runAsAdmin)
    On Error Resume Next
    WScript.StdErr.Write(Chr(7))
    If Err.Number <> 0 Then
        Err.Clear
        On Error GoTo 0
        Dim WshShell, sh, Arg, Str
        Set WshShell = WScript.CreateObject("WScript.Shell")
        sh = WshShell.ExpandEnvironmentStrings("%SystemRoot%\System32\CScript.exe")
        If InStr(sh,"%") = 1 Then sh="CScript.exe"
 
        For Each Arg In WScript.Arguments
            If InStr( Arg, " " ) Then Arg = """" & Arg & """"
            Str = Str & " " & Arg
        Next
 
        If runAsAdmin Then
            Wscript.CreateObject("Shell.Application").ShellExecute _
             sh, "//NoLogo """ & _
            WScript.ScriptFullName & """ " & Str, "", "runas", 1
        Else
            WshShell.Run sh & " //NoLogo """ & _
                WScript.ScriptFullName & """ " & Str
        End If
        WScript.Quit()
    End If
End Sub
 
Function GetWindowsVersion()
    Dim strComputer, objWMIService
    Dim colOperatingSystem, objOperatingSystem
    strComputer = "."
    Set objWMIService = GetObject( _
        "winmgmts:{impersonationLevel=impersonate}!\\" & _
        strComputer & "\root\cimv2")
    Set colOperatingSystem = _
        objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
 
    Dim Version
    For Each objOperatingSystem in colOperatingSystem
        Version = objOperatingSystem.Version
    Next
 
    GetWindowsVersion = Version
End Function
 
Sub Pause(strPause)
     WScript.Echo (strPause)
     WScript.StdIn.Read(1)
End Sub
 
Function VBMain()
    VBMain = 0
 
    Dim strVersion, arrVersion
    strVersion = GetWindowsVersion()
    arrVersion = Split(strVersion, ".")
    ' https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms724832(v=vs.85).aspx
    If CInt(arrVersion(0)) <> 6 Or _
        (CInt(arrVersion(0)) = 6 And _
         ( CInt(arrVersion(1)) <> 1 And _
           CInt(arrVersion(1)) <> 2 And _
           CInt(arrVersion(1)) <> 3 )) Then
      MsgBox "This Script Must Run under Windows 7/8/8.1"
      VBMain = 1
      Exit Function
    End If
 
    ForceCScriptExecution True
 
    WSH.Echo "Disable Windows 10 Upgrade Tool 1.0" & vbCrLf &_
              "Written By WangYe http://wangye.org/" & vbCrLf & vbCrLf
 
    If Not CurrentUserIsAdmin() Then
      WSH.Echo "**** Error: This Script Must Run under Administrators Account ****"
      Pause "Press any key to exit..."
      VBMain = 1
      Exit Function
    End If
 
    KillProcesses
    RemoveWinUpdates
    UpdateRegistry
    DeleteFiles
End Function
 
WSH.Quit(VBMain())


 

另存为*.vbs文件,直接双击即可(如果安全软件提示直接选择允许),这一段脚本其实还有一些小问题,比如隐藏更新的功能貌似一直无效,所以隐藏更新还需要手动操作,另外检查Windows更新时候等待的时间非常之长,需要有足够的耐心,所以总体上这段代码还是供大家参考吧。

第二部分,如何从已经升级Windows 10退回到旧系统

如果已经不小心升级,在30天内还可以通过以下方式进行补救,点击左下角开始标识(田字标志),点击“设置”,如下图所示:

Windows 10 设置

点击“更新和安全”选项,如下图所示:

Windows 10 更新和安全

选择“恢复”并在右边找到“回退到Windows 7”,点击“开始”即可完成回滚过程,如下图所示:

Windows 10回退到Windows 7

参考文档

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ytfy12/article/details/50640012

智能推荐

leetcode 172. 阶乘后的零-程序员宅基地

文章浏览阅读63次。题目给定一个整数 n,返回 n! 结果尾数中零的数量。解题思路每个0都是由2 * 5得来的,相当于要求n!分解成质因子后2 * 5的数目,由于n中2的数目肯定是要大于5的数目,所以我们只需要求出n!中5的数目。C++代码class Solution {public: int trailingZeroes(int n) { ...

Day15-【Java SE进阶】IO流(一):File、IO流概述、File文件对象的创建、字节输入输出流FileInputStream FileoutputStream、释放资源。_outputstream释放-程序员宅基地

文章浏览阅读992次,点赞27次,收藏15次。UTF-8是Unicode字符集的一种编码方案,采取可变长编码方案,共分四个长度区:1个字节,2个字节,3个字节,4个字节。文件字节输入流:每次读取多个字节到字节数组中去,返回读取的字节数量,读取完毕会返回-1。注意1:字符编码时使用的字符集,和解码时使用的字符集必须一致,否则会出现乱码。定义一个与文件一样大的字节数组,一次性读取完文件的全部字节。UTF-8字符集:汉字占3个字节,英文、数字占1个字节。GBK字符集:汉字占2个字节,英文、数字占1个字节。GBK规定:汉字的第一个字节的第一位必须是1。_outputstream释放

jeecgboot重新登录_jeecg 登录自动退出-程序员宅基地

文章浏览阅读1.8k次,点赞3次,收藏3次。解决jeecgboot每次登录进去都会弹出请重新登录问题,在utils文件下找到request.js文件注释这段代码即可_jeecg 登录自动退出

数据中心供配电系统负荷计算实例分析-程序员宅基地

文章浏览阅读3.4k次。我国目前普遍采用需要系数法和二项式系数法确定用电设备的负荷,其中需要系数法是国际上普遍采用的确定计算负荷的方法,最为简便;而二项式系数法在确定设备台数较少且各台设备容量差..._数据中心用电负荷统计变压器

HTML5期末大作业:网页制作代码 网站设计——人电影网站(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 dreamweaver作业静态HTML网页设计模板_网页设计成品百度网盘-程序员宅基地

文章浏览阅读7k次,点赞4次,收藏46次。HTML5期末大作业:网页制作代码 网站设计——人电影网站(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 dreamweaver作业静态HTML网页设计模板常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 明星、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 军事、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他 等网页设计题目, A+水平作业_网页设计成品百度网盘

【Jailhouse 文章】Look Mum, no VM Exits_jailhouse sr-iov-程序员宅基地

文章浏览阅读392次。jailhouse 文章翻译,Look Mum, no VM Exits!_jailhouse sr-iov

随便推点

chatgpt赋能python:Python怎么删除文件中的某一行_python 删除文件特定几行-程序员宅基地

文章浏览阅读751次。本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。AI职场汇报智能办公文案写作效率提升教程 专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。_python 删除文件特定几行

Java过滤特殊字符的正则表达式_java正则表达式过滤特殊字符-程序员宅基地

文章浏览阅读2.1k次。【代码】Java过滤特殊字符的正则表达式。_java正则表达式过滤特殊字符

CSS中设置背景的7个属性及简写background注意点_background设置背景图片-程序员宅基地

文章浏览阅读5.7k次,点赞4次,收藏17次。css中背景的设置至关重要,也是一个难点,因为属性众多,对应的属性值也比较多,这里详细的列举了背景相关的7个属性及对应的属性值,并附上演示代码,后期要用的话,可以随时查看,那我们坐稳开车了······1: background-color 设置背景颜色2:background-image来设置背景图片- 语法:background-image:url(相对路径);-可以同时为一个元素指定背景颜色和背景图片,这样背景颜色将会作为背景图片的底色,一般情况下设置背景..._background设置背景图片

Win10 安装系统跳过创建用户,直接启用 Administrator_windows10msoobe进程-程序员宅基地

文章浏览阅读2.6k次,点赞2次,收藏8次。Win10 安装系统跳过创建用户,直接启用 Administrator_windows10msoobe进程

PyCharm2021安装教程-程序员宅基地

文章浏览阅读10w+次,点赞653次,收藏3k次。Windows安装pycharm教程新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入下载安装PyCharm1、进入官网PyCharm的下载地址:http://www.jetbrains.com/pycharm/downl_pycharm2021

《跨境电商——速卖通搜索排名规则解析与SEO技术》一一1.1 初识速卖通的搜索引擎...-程序员宅基地

文章浏览阅读835次。本节书摘来自异步社区出版社《跨境电商——速卖通搜索排名规则解析与SEO技术》一书中的第1章,第1.1节,作者: 冯晓宁,更多章节内容可以访问云栖社区“异步社区”公众号查看。1.1 初识速卖通的搜索引擎1.1.1 初识速卖通搜索作为速卖通卖家都应该知道,速卖通经常被视为“国际版的淘宝”。那么请想一下,普通消费者在淘宝网上购买商品的时候,他的行为应该..._跨境电商 速卖通搜索排名规则解析与seo技术 pdf

推荐文章

热门文章

相关标签