相对论引力😘 425528215
引力只是有质量的物体扭曲时空的表现而已。
关注数: 438 粉丝数: 594 发帖数: 41,303 关注贴吧数: 26
变量延迟 例如,你编写了这样一个代码: [code19] @echo off set num=0&&echo %num% pause 复制代码   你的本意是想对变量num赋值之后,再把这个值显示出来,结果,显示出来的并不是0,而是显示:ECHO 处于关闭状态。   之所以会出错,是因为“变量延迟”这个家伙在作怪。   在讲解变量延迟之前,我们需要了解一下批处理的执行过程,它将有助于我们深入理解变量延迟。   批处理的执行过程是怎样的呢?   “自上而下,逐条执行”,我想,这个经典的说法大家都已经耳熟能详了,没事的时候倒着念,也还别有一番古韵呢^_^,但是,我想问大家的是,大家真的深刻地理解了这句话的含义了吗?   “自上而下”,这一条和我们本节的讲解关系不大,暂时略过不说,后一条,“逐条执行”和变量延迟有着莫大的干系,它是我们本节要关注的重点。   很多人往往认为一行代码就是一条语句,从而把“逐条执行”与“逐行执行”等同起来,这就大错特错了。   莫非“逐条执行”里暗藏着玄机?   正是如此。   “逐条”并不等同于“逐行”。这个“条”,是“一条完整的语句”的意思,并不是指“一行代码”。在批处理中,是不是一条完整的语句,并不是以行来论的,而是要看它的作用范围。   什么样的语句才算“一条完整的语句”呢?   1、在复合语句中,整个复合语句是一条完整的语句,而无论这个复合语句占用了多少行的位置。常见的复合语句有:for语句、if……else语句、用连接符&、||和&&连接的语句,用管道符号|连接的语句,以及用括号括起来的、由多条语句组合而成的语句块;   2、在非复合语句中,如果该语句占据了一行的位置,则该行代码为一条完整的语句。   例如: [code20] @echo off set num=0 for /f %%i in ('dir /a-d /b *.exe') do ( set /a num+=1 echo num 当前的值是 %num% ) echo 当前目录下共有 %num% 个exe文件 dir /a-d /b *.txt|findstr "test">nul&&( echo 存在含有 test 字符串的文本本件 )||echo 不存在含有 test 字符串的文本文件 if exist test.ini ( echo 存在 test.ini 文件 ) else echo 不存在 test.ini 文件 pause 复制代码   上面的代码共有14行,但是只有完整的语句只有7条,它们分别是:   第1条:第1行的echo语句;   第2条:第2行的set语句;   第3条:第3、4、5、6行上的for复合语句;   第4条:第7行的echo语句;   第5条:第8、9、10行上用&&和||连接的复合语句;   第6条:第11、12、13行上的if……else复合语句;   第7条:第14行上的pause语句。   在这里,我之所以要花这么长的篇幅来说明一行代码并不见得就是一条语句,是因为批处理的执行特点是“逐条”执行而不是“逐行”执行,澄清了这个误解,将会更加理解批处理的预处理机制。   在代码“逐条”执行的过程中,cmd.exe这个批处理解释器会对每条语句做一些预处理工作,这就是批处理中大名鼎鼎的“预处理机制”。   预处理的大致情形是这样的:首先,把一条完整的语句读入内存中(不管这条语句有多少行,它们都会被一起读入),然后,识别出哪些部分是命令关键字,哪些是开关、哪些是参数,哪些是变量引用……如果代码语法有误,则给出错误提示或退出批处理环境;如果顺利通过,接下来,就把该条语句中所有被引用的变量及变量两边的百分号对,用这条语句被读入内存之就已经赋予该变量的具体值来替换……当所有的预处理工作完成之后,批处理才会执行每条完整语句内部每个命令的原有功能。也就是说,如果命令语句中含有变量引用(变量及紧邻它左右的百分号对),并且某个变量的值在命令的执行过程中被改变了,即使该条语句内部的其他地方也用到了这个变量,也不会用最新的值去替换它们,因为某条语句在被预处理的时候,所有的变量引用都已经被替换成字符串常量了,变量值在复合语句内部被改变,不会影响到语句内部的其他任何地方。   顺便说一下,运行代码[code20]之后,将在屏幕上显示当前目录下有多少个exe文件,是否存在含有 test 字符串的文本文件,以及是否存在 test.ini 这个文件等信息。让很多人百思不得其解的是:如果当前目录下存在exe文件,那么,有多少个exe文件,屏幕上就会提示多少次 "num 当前的值是 0" ,而不是显示1到N(N是exe文件的个数)。   结合上面两个例子,我们再来分析一下,为什么这两段代码的执行结果和我们的期望有一些差距。   在[code19]中,set num=0&&echo %num%是一条复合语句,它的含义是:把0赋予变量num,成功后,显示变量num的值。   虽然是在变量num被赋值成功后才显示变量num的值,但是,因为这是一条复合语句,在预处理的时候,&&后的%num%只能被set语句之前的语句赋予变量num的具体值来替换,而不能被复合语句内部、&&之前的set语句对num所赋予的值来替换,可见,此num非彼num。可是,在这条复合语句之前,我们并没有对变量num赋值,所以,&&之后的%num%是空值,相当于在&&之后只执行了 echo 这一命令,所以,会显示 echo 命令的当前状态,而不是显示变量num的值(虽然该变量的值被set语句改变了)。   在[code20]中,for语句的含义是:列举当前目录下的exe文件,每发现一个exe文件,变量num的值就累加1,并显示变量num的值。   看了对[code19]的分析之后,再来分析[code20]就不再那么困难了:第3、4、5行上的代码共同构成了一条完整的for语句,而语句"echo num 当前的值是 %num%"与"set /a num+=1"同处复合语句for的内部,那么,第4行上set改变了num的值之后,并不能对第5行上的变量num有任何影响,因为在预处理阶段,第5行上的变量引用%num%已经被在for之前就赋予变量num的具体值替换掉了,它被替换成了0(是被第2行上的set语句赋予的)。   如果想让代码[code19]的执行结果中显示&&之前赋予num的值,让代码[code20]在列举exe文件的时候,从1到N地显示exe文件的数量,那又该怎么办呢?   对代码[code19],可以把用&&连接复合语句拆分为两条单独的语句,写成: @echo off set num=0 echo %num% pause 复制代码   但是,这不是我们这次想要的结果。   对这两段代码都适用的办法是:使用变量延迟扩展语句,让变量的扩展行为延迟一下,从而获取我们想要的值。   在这里,我们先来充下电,看看“变量扩展”有是怎么一回事。   用CN-DOS里批处理达人willsort的原话,那就是:“在许多可见的官方文档中,均将使用一对百分号闭合环境变量以完成对其值的替换行为称之为“扩展(expansion)”,这其实是一个第一方的概念,是从命令解释器的角度进行称谓的,而从我们使用者的角度来看,则可以将它看作是引用(Reference)、调用(Call)或者获取(Get)。”(见:什么情况下该使用变量延迟?http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.cn-dos.net%2Fforum%2Fviewthread.php%3Ftid%3D20733&urlrefer=d8b0d9b93d5df1b0deb72c568d56e587)说得直白一点,所谓的“变量扩展”,实际上就是很简单的这么一件事情:用具体的值去替换被引用的变量及紧贴在它左右的那对百分号。   既然只要延迟变量的扩展行为,就可以获得我们想要的结果,那么,具体的做法又是怎样的呢?   一般说来,延迟变量的扩展行为,可以有如下选择:   1、在适当位置使用 setlocal enabledelayedexpansion 语句;   2、在适当的位置使用 call 语句。   使用 setlocal enabledelayedexpansion 语句,那么,[code19]和[code20]可以分别修改为: @echo off setlocal enabledelayedexpansion set num=0&&echo !num! pause 复制代码 @echo off set num=0 setlocal enabledelayedexpansion for /f %%i in ('dir /a-d /b *.exe') do ( set /a num+=1 echo num 当前的值是 !num! ) echo 当前目录下共有 %num% 个exe文件 dir /a-d /b *.txt|findstr "test">nul&&( echo 存在含有 test 字符串的文本本件 )||echo 不存在含有 test 字符串的文本文件 if exist test.ini ( echo 存在 test.ini 文件 ) else echo 不存在 test.ini 文件 pause 复制代码   使用第call语句,那么,[code19]和[code20]可以分别修改为: @echo off set num=0&&call echo %%num%% pause 复制代码 @echo off set num=0 for /f %%i in ('dir /a-d /b *.exe') do ( set /a num+=1 call echo num 当前的值是 %%num%% ) echo 当前目录下共有 %num% 个exe文件 dir /a-d /b *.txt|findstr "test">nul&&( echo 存在含有 test 字符串的文本本件 )||echo 不存在含有 test 字符串的文本文件 if exist test.ini ( echo 存在 test.ini 文件 ) else 不存在 test.ini 文件 pause 复制代码   由此可见,如果使用 setlocal enabledelayedexpansion 语句来延迟变量,就要把原本使用百分号对闭合的变量引用改为使用感叹号对来闭合;如果使用call语句,就要在原来命令的前部加上 call 命令,并把变量引用的单层百分号对改为双层。 其中,因为call语句使用的是双层百分号对,容易使人犯迷糊,所以用得较少,常用的是使用 setlocal enabledelayedexpansion 语句(set是设置的意思,local是本地的意思,enable是能够的意思,delayed是延迟的意思,expansion是扩展的意思,合起来,就是:让变量成为局部变量,并延迟它的扩展行为)。   通过上面的分析,我们可以知道:   1、为什么要使用变量延迟?因为要让复合语句内部的变量实时感知到变量值的变化。   2、在哪些场合需要使用变量延迟语句?在复合语句内部,如果某个变量的值发生了改变,并且改变后的值需要在复合语句内部的其他地方被用到,那么,就需要使用变量延迟语句。而复合语句有:for语句、if……else语句、用连接符&、||和&&连接的语句、用管道符号|连接的语句,以及用括号括起来的、由多条语句组合而成的语句块。最常见的场合,则是for语句和if……else语句。   3、怎样使用变量延迟?   方法有两种:   ① 使用 setlocal enabledelayedexpansion 语句:在获取变化的变量值语句之前使用setlocal enabledelayedexpansion,并把原本使用百分号对闭合的变量引用改为使用感叹号对来闭合;   ② 使用 call 语句:在原来命令的前部加上 call 命令,并把变量引用的单层百分号对改为双层。   “变量延迟”是批处理中一个十分重要的机制,它因预处理机制而生,用于复合语句,特别是大量使用于强大的for语句中。只有熟练地使用这一机制,才能在for的世界中如鱼得水,让自己的批处理水平更上一层楼。很多时候,对for的处理机制,我们一直是雾里看花,即使偶有所得,也只是只可意会难以言传。希望大家反复揣摩,多加练习,很多细节上的经验,是只有通过大量的摸索才能得到的。Good Luck!
DOS=BAT=CMD=脚本=变量-一文字鲲 http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.bathome.net%2Fthread-2189-1-1.html&urlrefer=e4182c5af8d6fa3b5399725ff30a3c6a 1 目录跳转:cd 20081112 2 以树形格式罗列文件:tree 20081112 3 内容重定向:>和>> 20081113 4 条件判断:if  20081114 5 流程跳转:goto 20081117 6 复制文件:copy 20081221 7 删除文件:del 20090101 8 重命名文件(夹):ren 20090212 20090226 9 创建文件夹:md 20090213 10 删除文件夹:rd 20090214 11 移动文件(夹):move 20090606 20080611 12 字符串查找:find 20090607 20090608 13 字符串查找增强:findstr 14 文件替换:replace 15 设置文件属性:attrib 16 显示磁盘卷标和序列号:vol 17 编辑磁盘卷标:label 18 转换磁盘系统格式:convert 19 格式化磁盘:format 20 创建虚拟盘符:subst 21 给磁盘做个体检:chkdsk 22 清理CMD屏幕上的信息:cls 23 更换CMD窗口的颜色:color 24 给CMD窗口换个标题:title 25 获取系统日期:date 26 获取系统时间:time 27 退出CMD窗口:exit 28 查看系统版本:ver 29 返回到上次路径:pushd/popd 30 操控注册表:reg 31 注册dll文件:regsver32 32 打开文件、运行程序:start 33 关闭或重启计算机:shutdown 34 显示进程清单:tasklist 35 关闭指定进程:taskkill 36 查看IP配置信息:ipconfig 37 测试IP连接:ping 38 解析地址:arp 39 配置计算机网络信息:netsh 40 传输文件:ftp 41 调用子过程或外部程序:call 42 显示提示信息:echo 43 暂停执行:pause 44 设置变量:set 45 注释语句:rem和:: 46 更改参数的位置:shift 47 一次只显示单屏内容:more 48 字符串排序:sort 49 复合语句连接符:&、&&和|| 50 管道符号:|    
win10升级直播 图片来自:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F362dad3deff2471a47867434166783bfe85c4c2f&urlrefer=f0bfa7eba0c8a07c968ced43058f73a6图片来自:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F362dad3deff2471a47867434166783bfe85c4c2f&urlrefer=f0bfa7eba0c8a07c968ced43058f73a6图片来自:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F362dad3deff2471a47867434166783bfe85c4c2f&urlrefer=f0bfa7eba0c8a07c968ced43058f73a6图片来自:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F362dad3deff2471a47867434166783bfe85c4c2f&urlrefer=f0bfa7eba0c8a07c968ced43058f73a6图片来自:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F362dad3deff2471a47867434166783bfe85c4c2f&urlrefer=f0bfa7eba0c8a07c968ced43058f73a6图片来自:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F362dad3deff2471a47867434166783bfe85c4c2f&urlrefer=f0bfa7eba0c8a07c968ced43058f73a6图片来自:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F362dad3deff2471a47867434166783bfe85c4c2f&urlrefer=f0bfa7eba0c8a07c968ced43058f73a6图片来自:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F362dad3deff2471a47867434166783bfe85c4c2f&urlrefer=f0bfa7eba0c8a07c968ced43058f73a6
bcdedit 命令 BCDEDIT - 启动配置数据存储编辑器 Bcdedit.exe 命令行工具用于修改启动配置数据存储。 启动配置数据存储包含启动配置参数并控制操作系统的启动方式。这些参数以前位于 Boot.ini 文件中(在基于 BIOS 的操作系统中)或位于稳定 RAM 项中(在基于可扩展 固件接口的操作系统中)。可以使用 Bcdedit.exe 在启动配置数据存储中添加、删除、 编辑和附加项。 有关命令和选项的详细信息,请键入 bcdedit.exe /? <command>。 例如,若要显示有关 /createstore 命令的详细信息,请键入: bcdedit.exe /? /createstore 有关本帮助文件中按字母顺序排列的主题列表,请运行 "bcdedit /? TOPICS"。 对存储执行的命令 ================================ /createstore 新建空的启动配置数据存储。 /export 将系统存储的内容导出到文件。以后可以使用该文件还原系统 存储的状态。 /import 使用 /export 命令创建的备份文件来还原系统存储的状态。 /sysstore 设置系统存储设备(仅影响 EFI 系统,在重新启动后不再有效, 且仅用于系统存储设备不确定的情况下)。 对存储中的项执行的命令 =========================================== /copy 复制存储中的项。 /create 在存储中新建项。 /delete 删除存储中的项。 /mirror 创建存储中项的镜像。 运行 bcdedit /? ID 可获得有关这些命令使用的标识符的信息。 对项选项执行的命令 ====================================== /deletevalue 删除存储中的项选项。 /set 设置存储中的项选项值。 运行 bcdedit /? TYPES 可获得这些命令使用的数据类型的列表。 运行 bcdedit /? FORMATS 可获得有效数据格式的列表。 控制输出的命令 ============================ /enum 列出存储中的项。 /v 命令行选项,完整显示项标识符,而不是使用已知标识符的名称。 单独使用命令 /v 可完整显示活动类型的项标识符。 单独运行 "bcdedit" 等同于运行 "bcdedit /enum ACTIVE"。 控制启动管理器的命令 ====================================== /bootsequence 为启动管理器设置一次性启动序列。 /default 设置启动管理器将使用的默认项。 /displayorder 设置启动管理器显示多重引导菜单的顺序。 /timeout 设置启动管理器的超时值。 /toolsdisplayorder 设置启动管理器显示工具菜单的顺序。 控制启动应用程序紧急管理服务的命令 ========================================================================== /bootems 启用或禁用启动应用程序的紧急管理服务。 /ems 启用或禁用操作系统项的紧急管理服务。 /emssettings 设置全局紧急管理服务参数。 控制调试的命令 ============================== /bootdebug 启用或禁用启动应用程序的启动调试。 /dbgsettings 设置全局调试程序参数。 /debug 启用或禁用操作系统项的内核调试。 /hypervisorsettings 设置虚拟机监控程序的参数。
ADK Windows评估和部署工具包 (Windows ADK) For Windows 从MS官网下载完整的部署包太大了,速度又慢,选择性下载是个好办法,几十MB而已,一会就安装完了。 由于本人现在只需要一个部署工具就足够了,所以其他的功能全部被无视了,高版本ADK兼容低版本ADK(以下是从低到高几个重要的ADKSETUP.EXE版本)。 首先从MS官网下载这个在线安装程序adksetup.exe 1、Windows Assessment and Deployment Kit (ADK) for Windows 8 http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.microsoft.com%2Fen-us%2Fdownload%2Fdetails.aspx%3Fid%3D30652+&urlrefer=793d8f82b8b89ee58c857d7b9792ca47 2、Windows Assessment and Deployment Kit (Windows ADK) for Windows 8.1 Update http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.microsoft.com%2Fzh-CN%2Fdownload%2Fdetails.aspx%3Fid%3D39982&urlrefer=8f30c940fb6a879adebb03c76b81fce8 3、适用于 Windows 10 的工具包和工具 (文件版本:10.0.26624,安装出来ADK文件系是10.0.10240.16384) http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fgo.microsoft.com%2Ffwlink%2Fp%2F%3FLinkId%3D526740&urlrefer=559be358742c5fc35976d7bd53d06ab7 然后cd到adksetup.exe所在的目录,键入以下命令: "D:\迅雷下载\adksetup.exe" /installpath c:\ADK /features OptionId.DeploymentTools c:\ADK 为我要安装部署工具的目录 OptionId.DeploymentTools 为部署工具的featureID 其他部署工具的featureID为: 功能 标识符 应用程序兼容性工具包 (ACT) OptionId.ApplicationCompatibilityToolkit 部署工具 OptionId.DeploymentTools Windows 预安装环境 (Windows PE) OptionId.WindowsPreinstallationEnvironment 用户状态迁移工具 OptionId.UserStateMigrationTool 批量激活管理工具 (VAMT) OptionId.VolumeActivationManagementTool Windows 性能工具包 (WPT) OptionId.WindowsPerformanceToolkit Windows 评估工具包 OptionId.WindowsAssessmentToolkit Windows 评估服务 - 客户端 OptionId.WindowsAssessmentServicesClient Windows 评估服务 OptionId.WindowsAssessmentServices Microsoft? SQL Server? 2012 Express OptionId.SqlExpress2012 .NET Framework OptionId.Netfx
windows8引导启动 win8默认开启快速开机,比禁用此功能快10秒钟;但是,关机时间比禁用此功能慢10秒钟,貌似很好笑; 但其实,这个设计有很多优点,首先是开机比较快,其次就是在这个时候实际上win8的一部分已经启动了,所以可以进行一下简单的操作,配合win8新的修复机制可以再10分钟之内重置系统(把系统还原到初始状态,可以选择保留应用,驱动等),相当的给力。 8的快速开机功能是metro的引导菜单支持者,对多系统来说,这也许是个灾难; 运行win8后,如果再进入win7,会选中7的启动菜单后,再重启一次,才能进入win7,貌似时间也 较以前长。更重要的是win8一旦奔溃,没有系统盘引导,连win7也无法进入。 原因:win8里面引进了快速启动这项功能,官方给出的说法是将一部分系统启动所需的信息储存在一个文件里,开机后直接调用,就会节约很多时间。但是其实纠其本质,其实就是休眠。所以这就是为什么metro的引导菜单是在win8图标显示以后出现,而不是在这之前出现,因为默认快速启动是打开的,那么开机后是不会直接读取引导,而会先进入系统,如果把引导菜单放在win8启动前,那么就会直接跳过metro的引导菜单。 方法:把metro的菜单修复成开机就启动的普通菜单。 如果是早期版本,比如:BCDautofix v1.23(BCD),当然你也可以使用win7的bootsect来修复。你可以在win8下修复,但有一定机率会出现假关机现象,电源指示灯不灭,敲一下键盘就又回到登陆界面了,原因应该就是快速启动这项功能的本质造成的。所以建议大家还是先进win7修复,自动修复完成后可以运行msconfig指令进入系统配置的引导标签下修改默认系统和等待时间,然后进入win8,按win+X使用管理员权限运行命令提示符,输入指令powercfg -h off,或者去控制面板的电源选项里手动关掉快速启动,因为只有这样才是真正的关机,才会显示win8图标前的引导菜单。不然还是会直接进入win8,再显示引导。 现在最新的版本是ntbootautofixv2.5.1,可以开启和禁用这个metro引导菜单,默认会关闭这个metro引导菜单,v2.5.1完美支持win8,先禁用快速开机,再自动修复一次就行了,这个metro引导就成浮云了,win7的启动就不用重新启动一次了,而且需要的时候再去控制面板打开或者运行powercfg -h on也行。
直播安装windows10 图片来自:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F362dad3deff2471a47867434166783bfe85c4c2f&urlrefer=f0bfa7eba0c8a07c968ced43058f73a6图片来自:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F362dad3deff2471a47867434166783bfe85c4c2f&urlrefer=f0bfa7eba0c8a07c968ced43058f73a6图片来自:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F362dad3deff2471a47867434166783bfe85c4c2f&urlrefer=f0bfa7eba0c8a07c968ced43058f73a6图片来自:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F362dad3deff2471a47867434166783bfe85c4c2f&urlrefer=f0bfa7eba0c8a07c968ced43058f73a6图片来自:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F362dad3deff2471a47867434166783bfe85c4c2f&urlrefer=f0bfa7eba0c8a07c968ced43058f73a6图片来自:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F362dad3deff2471a47867434166783bfe85c4c2f&urlrefer=f0bfa7eba0c8a07c968ced43058f73a6图片来自:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F362dad3deff2471a47867434166783bfe85c4c2f&urlrefer=f0bfa7eba0c8a07c968ced43058f73a6图片来自:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F362dad3deff2471a47867434166783bfe85c4c2f&urlrefer=f0bfa7eba0c8a07c968ced43058f73a6图片来自:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F362dad3deff2471a47867434166783bfe85c4c2f&urlrefer=f0bfa7eba0c8a07c968ced43058f73a6
端口汇聚 以太网端口汇聚配置举例 1. 组网需求 交换机Switch A 用3 个端口聚合接入交换机Switch B,Switch A 的接入端口为Ethernet2/1/1~Ethernet2/1/3。从而实现出/入负荷在各成员端口中的进行分担。 配置步骤 以下只列出了Switch A 的配置,Switch B 上应作相应的配置,汇聚才能实际有效: (1) 采用手工聚合方式(华为交换机的端口聚合,与Cisco有不同之处) # 创建汇聚组1。 [Quidway] link-aggregation group 1 mode manual [Quidway] interface ethernet2/1/1 [Quidway-Ethernet2/1/3] port link-aggregation group 1 # 当聚合组端口序号连续时,可以直接把多个端口聚成一组,组号由系统自行分配。 [Quidway] link-aggregation ethernet2/1/1 to ethernet2/1/3 both (2) 采用静态LACP 聚合方式 # 创建静态汇聚组1。 [Quidway] link-aggregation group 1 mode static # 将以太网端口Ethernet2/1/1 至Ethernet2/1/3 加入聚合组1。 [Quidway] interface ethernet2/1/1 [Quidway-Ethernet2/1/1] port link-aggregation group 1 [Quidway-Ethernet2/1/1] interface ethernet2/1/2 [Quidway-Ethernet2/1/2] port link-aggregation group 1 (3) 采用动态LACP 聚合方式 # 开启以太网端口Ethernet2/1/1 至Ethernet2/1/3 的LACP 协议。 [Quidway] interface ethernet2/1/1 [Quidway-Ethernet2/1/1] lacp enable [Quidway-Ethernet2/1/2] interface ethernet2/1/2 [Quidway-Ethernet2/1/2] lacp enable [Quidway-Ethernet2/1/2] interface ethernet2/1/3 [Quidway-Ethernet2/1/3] lacp enable 只有端口的基本配置、速率、双工等参数一致时,上述端口在开启LACP 协议之后 才能聚合到同一个动态聚合组内,实现端口的负载分担。
VLAN+ PAT Switch>en Switch#conf t Switch(config)#vlan 10 Switch(config-vlan)#vlan 20 Switch(config-vlan)#exi Switch(config)#interface range f0/1 -12 Switch(config-if-range)#switchport mo acc Switch(config-if-range)#sw acc vlan 10 Switch(config-if-range)#exi Switch(config)#int range f0/13 - 24 Switch(config-if-range)#sw mo acc Switch(config-if-range)#sw acc vlan 20 Switch(config-if-range)#exi Switch(config)#int g0/1 Switch(config-if)#sw mo trunk Switch(config-if)#exi Switch(config)#vlan 200 Switch(config-vlan)#exi Switch(config)#int vlan 200 Switch(config-if)#ip add 100.0.0.11 255.255.255.0 Switch(config-if)#no shutdown Switch(config-if)#end Switch#write Switch>enable Switch#conf t Switch(config)#vlan 10 Switch(config-vlan)#vlan 20 Switch(config-vlan)#vlan 200 Switch(config-vlan)#exi Switch(config)#int vlan 10 Switch(config-if)#ip add 192.168.0.254 255.255.255.0 Switch(config-if)#no shutdown Switch(config-if)#exi Switch(config)#int vlan 20 Switch(config-if)#ip add 192.168.1.254 255.255.255.0 Switch(config-if)#no shutdown Switch(config-if)#exi Switch(config)#int vlan 200 Switch(config-if)#ip add 100.0.0.1 255.255.255.0 Switch(config-if)#no sh Switch(config-if)#exi Switch(config)#int g0/1 Switch(config-if)#sw trunk encapsulation dot1q Switch(config-if)#sw mo tr Switch(config-if)#exi Switch(config)#int f 0/1 Switch(config-if)#sw Switch(config-if)#switchport mo ac Switch(config-if)#sw ac vlan 200 Switch(config-if)#no sh Switch(config-if)#no shutdown Switch(config)#ip routi Switch(config)#ip routing Switch(config)#ip route 0.0.0.0 0.0.0.0 100.0.0.2 Switch(config)#end Router>en Router#conf t Router(config)#hostname R1 R1(config)#int f0/0 R1(config-if)#ip add 100.0.0.2 255.255.255.0 R1(config-if)#no shutdown R1(config-if)#exi R1(config)#int s2/0 R1(config-if)#ip add 200.0.0.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#exi R1(config)#ip route 192.168.0.0 255.255.255.0 100.0.0.1 R1(config)#ip route 192.168.1.0 255.255.255.0 100.0.0.1 R1(config)#access-list 10 permit 192.168.0.0 0.0.0.255 R1(config)#access-list 11 permit 192.168.1.0 0.0.0.255 R1(config)#ip nat pool qq 200.0.0.1 200.0.0.1 netmask 0.0.0.255 R1(config)#ip nat inside source list 10 pool qq overload R1(config)#ip nat inside source list 11 pool qq overload R1(config)#int f0/0 R1(config-if)#ip nat in R1(config-if)#ip nat inside R1(config-if)#exi R1(config)#int s2/0 R1(config-if)#ip nat o R1(config-if)#ip nat outside R1(config-if)#end R1(config)#ip route 0.0.0.0 0.0.0.0 s2/0 Router>en Router#conf t Router(config)#hostname R2 R2(config)#INT S3/0 R2(config-if)#ip add 200.0.0.2 255.255.255.0 R2(config-if)#no sh %LINK-5-CHANGED: Interface Serial3/0, changed state to up R2(config-if)#clock rate 64000 R2(config-if)#exi R2(config)#int loopback 0 R2(config-if)#ip add 20.0.0.1 255.255.255.0 R2(config-if)#no sh R2(config-if)#end
VLAN路由器交换机配置 Switch>en Switch#conf t Switch(config)#vlan 10 Switch(config-vlan)#vlan 20 Switch(config-vlan)#exi Switch(config)#interface range f0/1 -12 Switch(config-if-range)#switchport mo acc Switch(config-if-range)#sw acc vlan 10 Switch(config-if-range)#exi Switch(config)#int range f0/13 - 24 Switch(config-if-range)#sw mo acc Switch(config-if-range)#sw acc vlan 20 Switch(config-if-range)#exi Switch(config)#int g0/1 Switch(config-if)#sw mo trunk Switch(config-if)#exi Switch(config)#vlan 200 Switch(config-vlan)#exi Switch(config)#int vlan 200 Switch(config-if)#ip add 100.0.0.11 255.255.255.0 Switch(config-if)#no shutdown Switch(config-if)#end Switch#write Switch>enable Switch#conf t Switch(config)#vlan 10 Switch(config-vlan)#vlan 20 Switch(config-vlan)#vlan 200 Switch(config-vlan)#exi Switch(config)#int vlan 10 Switch(config-if)#ip add 192.168.0.254 255.255.255.0 Switch(config-if)#no shutdown Switch(config-if)#exi Switch(config)#int vlan 20 Switch(config-if)#ip add 192.168.1.254 255.255.255.0 Switch(config-if)#no shutdown Switch(config-if)#exi Switch(config)#int vlan 200 Switch(config-if)#ip add 100.0.0.1 255.255.255.0 Switch(config-if)#no sh Switch(config-if)#exi Switch(config)#int g0/1 Switch(config-if)#sw trunk encapsulation dot1q Switch(config-if)#sw mo tr Switch(config-if)#exi Switch(config)#int f 0/1 Switch(config-if)#sw Switch(config-if)#switchport mo ac Switch(config-if)#sw ac vlan 200 Switch(config-if)#no sh Switch(config-if)#no shutdown Switch(config)#ip routi Switch(config)#ip routing Switch(config)#ip route 0.0.0.0 0.0.0.0 100.0.0.2 Switch(config)#end Router>en Router#conf t Router(config)#hostname R1 R1(config)#int f0/0 R1(config-if)#ip add 100.0.0.2 255.255.255.0 R1(config-if)#no shutdown R1(config-if)#exi R1(config)#int s2/0 R1(config-if)#ip add 200.0.0.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#exi R1(config)#ip route 192.168.0.0 255.255.255.0 100.0.0.1 R1(config)#ip route 192.168.1.0 255.255.255.0 100.0.0.1 R1(config)#access-list 10 permit 192.168.0.0 0.0.0.255 R1(config)#access-list 11 permit 192.168.1.0 0.0.0.255 R1(config)#ip nat pool qq 200.0.0.1 200.0.0.1 netmask 0.0.0.255 R1(config)#ip nat inside source list 10 pool qq overload R1(config)#ip nat inside source list 11 pool qq overload R1(config)#int f0/0 R1(config-if)#ip nat in R1(config-if)#ip nat inside R1(config-if)#exi R1(config)#int s2/0 R1(config-if)#ip nat o R1(config-if)#ip nat outside R1(config-if)#end R1(config)#ip route 0.0.0.0 0.0.0.0 s2/0 Router>en Router#conf t Router(config)#hostname R2 R2(config)#INT S3/0 R2(config-if)#ip add 200.0.0.2 255.255.255.0 R2(config-if)#no sh %LINK-5-CHANGED: Interface Serial3/0, changed state to up R2(config-if)#clock rate 64000 R2(config-if)#exi R2(config)#int loopback 0 R2(config-if)#ip add 20.0.0.1 255.255.255.0 R2(config-if)#no sh R2(config-if)#end
【06-07 资源分享】VLAN路由+PAT Switch>en Switch#conf t Switch(config)#vlan 10 Switch(config-vlan)#vlan 20 Switch(config-vlan)#exi Switch(config)#interface range f0/1 -12 Switch(config-if-range)#switchport mo acc Switch(config-if-range)#sw acc vlan 10 Switch(config-if-range)#exi Switch(config)#int range f0/13 - 24 Switch(config-if-range)#sw mo acc Switch(config-if-range)#sw acc vlan 20 Switch(config-if-range)#exi Switch(config)#int g0/1 Switch(config-if)#sw mo trunk Switch(config-if)#exi Switch(config)#vlan 200 Switch(config-vlan)#exi Switch(config)#int vlan 200 Switch(config-if)#ip add 100.0.0.11 255.255.255.0 Switch(config-if)#no shutdown Switch(config-if)#end Switch#write Switch>enable Switch#conf t Switch(config)#vlan 10 Switch(config-vlan)#vlan 20 Switch(config-vlan)#vlan 200 Switch(config-vlan)#exi Switch(config)#int vlan 10 Switch(config-if)#ip add 192.168.0.254 255.255.255.0 Switch(config-if)#no shutdown Switch(config-if)#exi Switch(config)#int vlan 20 Switch(config-if)#ip add 192.168.1.254 255.255.255.0 Switch(config-if)#no shutdown Switch(config-if)#exi Switch(config)#int vlan 200 Switch(config-if)#ip add 100.0.0.1 255.255.255.0 Switch(config-if)#no sh Switch(config-if)#exi Switch(config)#int g0/1 Switch(config-if)#sw trunk encapsulation dot1q Switch(config-if)#sw mo tr Switch(config-if)#exi Switch(config)#int f 0/1 Switch(config-if)#sw Switch(config-if)#switchport mo ac Switch(config-if)#sw ac vlan 200 Switch(config-if)#no sh Switch(config-if)#no shutdown Switch(config)#ip routi Switch(config)#ip routing Switch(config)#ip route 0.0.0.0 0.0.0.0 100.0.0.2 Switch(config)#end Router>en Router#conf t Router(config)#hostname R1 R1(config)#int f0/0 R1(config-if)#ip add 100.0.0.2 255.255.255.0 R1(config-if)#no shutdown R1(config-if)#exi R1(config)#int s2/0 R1(config-if)#ip add 200.0.0.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#exi R1(config)#ip route 192.168.0.0 255.255.255.0 100.0.0.1 R1(config)#ip route 192.168.1.0 255.255.255.0 100.0.0.1 R1(config)#access-list 10 permit 192.168.0.0 0.0.0.255 R1(config)#access-list 11 permit 192.168.1.0 0.0.0.255 R1(config)#ip nat pool qq 200.0.0.1 200.0.0.1 netmask 0.0.0.255 R1(config)#ip nat inside source list 10 pool qq overload R1(config)#ip nat inside source list 11 pool qq overload R1(config)#int f0/0 R1(config-if)#ip nat in R1(config-if)#ip nat inside R1(config-if)#exi R1(config)#int s2/0 R1(config-if)#ip nat o R1(config-if)#ip nat outside R1(config-if)#end R1(config)#ip route 0.0.0.0 0.0.0.0 s2/0 Router>en Router#conf t Router(config)#hostname R2 R2(config)#INT S3/0 R2(config-if)#ip add 200.0.0.2 255.255.255.0 R2(config-if)#no sh %LINK-5-CHANGED: Interface Serial3/0, changed state to up R2(config-if)#clock rate 64000 R2(config-if)#exi R2(config)#int loopback 0 R2(config-if)#ip add 20.0.0.1 255.255.255.0 R2(config-if)#no sh R2(config-if)#end
VLAN间路由+NAT Switch>en Switch#conf t Switch(config)#vlan 10 Switch(config-vlan)#vlan 20 Switch(config-vlan)#exi Switch(config)#interface range f0/1 -12 Switch(config-if-range)#switchport mo acc Switch(config-if-range)#sw acc vlan 10 Switch(config-if-range)#exi Switch(config)#int range f0/13 - 24 Switch(config-if-range)#sw mo acc Switch(config-if-range)#sw acc vlan 20 Switch(config-if-range)#exi Switch(config)#int g0/1 Switch(config-if)#sw mo tr Switch(config-if)#sw mo trunk Switch(config-if)#exi Switch(config)#vlan 200 Switch(config-vlan)#exi Switch(config)#int vlan 200 Switch(config-if)#ip add 100.0.0.11 255.255.255.0 Switch(config-if)#no shutdown Switch(config-if)#end Switch#write Switch>enable Switch#conf t Switch(config)#vlan 10 Switch(config-vlan)#vlan 20 Switch(config-vlan)#vlan 200 Switch(config-vlan)#exi Switch(config)#int vlan 10 Switch(config-if)#ip add 192.168.0.254 255.255.255.0 Switch(config-if)#no shutdown Switch(config-if)#exi Switch(config)#int vlan 20 Switch(config-if)#ip add 192.168.1.254 255.255.255.0 Switch(config-if)#no shutdown Switch(config-if)#exi Switch(config)#int vlan 200 Switch(config-if)#ip add 100.0.0.1 255.255.255.0 Switch(config-if)#no sh Switch(config-if)#exi Switch(config)#int g0/1 Switch(config-if)#sw trunk encapsulation dot1q Switch(config-if)#sw mo tr Switch(config-if)#exi Switch(config)#int f 0/1 Switch(config-if)#sw Switch(config-if)#switchport mo ac Switch(config-if)#sw ac vlan 200 Switch(config-if)#no sh Switch(config-if)#no shutdown Switch(config)#ip routi Switch(config)#ip routing Switch(config)#ip route 0.0.0.0 0.0.0.0 100.0.0.2 Switch(config)#end Router>en Router#conf t Router(config)#hostname R1 R1(config)#int f0/0 R1(config-if)#ip add 100.0.0.2 255.255.255.0 R1(config-if)#no shutdown R1(config-if)#exi R1(config)#int s2/0 R1(config-if)#ip add 200.0.0.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#exi R1(config)#ip route 192.168.0.0 255.255.255.0 100.0.0.1 R1(config)#ip route 192.168.1.0 255.255.255.0 100.0.0.1 R1(config)#access-list 10 permit 192.168.0.0 0.0.0.255 R1(config)#access-list 11 permit 192.168.1.0 0.0.0.255 R1(config)#ip nat pool qq 200.0.0.1 200.0.0.1 netmask 0.0.0.255 R1(config)#ip nat inside source list 10 pool qq overload R1(config)#ip nat inside source list 11 pool qq overload R1(config)#int f0/0 R1(config-if)#ip nat in R1(config-if)#ip nat inside R1(config-if)#exi R1(config)#int s2/0 R1(config-if)#ip nat o R1(config-if)#ip nat outside R1(config-if)#end R1(config)#ip route 0.0.0.0 0.0.0.0 s2/0 Router>en Router#conf t Router(config)#hostname R2 R2(config)#INT S3/0 R2(config-if)#ip add 200.0.0.2 255.255.255.0 R2(config-if)#no sh %LINK-5-CHANGED: Interface Serial3/0, changed state to up R2(config-if)#clock rate 64000 R2(config-if)#exi R2(config)#int loopback 0 R2(config-if)#ip add 20.0.0.1 255.255.255.0 R2(config-if)#no sh R2(config-if)#end
VLAN间路由+NAT 图片来自:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F362dad3deff2471a47867434166783bfe85c4c2f&urlrefer=f0bfa7eba0c8a07c968ced43058f73a6 Switch>en Switch#conf t Switch(config)#vlan 10 Switch(config-vlan)#vlan 20 Switch(config-vlan)#exi Switch(config)#interface range f0/1 -12 Switch(config-if-range)#switchport mo acc Switch(config-if-range)#sw acc vlan 10 Switch(config-if-range)#exi Switch(config)#int range f0/13 - 24 Switch(config-if-range)#sw mo acc Switch(config-if-range)#sw acc vlan 20 Switch(config-if-range)#exi Switch(config)#int g0/1 Switch(config-if)#sw mo tr Switch(config-if)#sw mo trunk Switch(config-if)#exi Switch(config)#vlan 200 Switch(config-vlan)#exi Switch(config)#int vlan 200 Switch(config-if)#ip add 100.0.0.11 255.255.255.0 Switch(config-if)#no shutdown Switch(config-if)#end Switch#write Switch>enable Switch#conf t Switch(config)#vlan 10 Switch(config-vlan)#vlan 20 Switch(config-vlan)#vlan 200 Switch(config-vlan)#exi Switch(config)#int vlan 10 Switch(config-if)#ip add 192.168.0.254 255.255.255.0 Switch(config-if)#no shutdown Switch(config-if)#exi Switch(config)#int vlan 20 Switch(config-if)#ip add 192.168.1.254 255.255.255.0 Switch(config-if)#no shutdown Switch(config-if)#exi Switch(config)#int vlan 200 Switch(config-if)#ip add 100.0.0.1 255.255.255.0 Switch(config-if)#no sh Switch(config-if)#exi Switch(config)#int g0/1 Switch(config-if)#sw trunk encapsulation dot1q Switch(config-if)#sw mo tr Switch(config-if)#exi Switch(config)#int f 0/1 Switch(config-if)#sw Switch(config-if)#switchport mo ac Switch(config-if)#sw ac vlan 200 Switch(config-if)#no sh Switch(config-if)#no shutdown Switch(config)#ip routi Switch(config)#ip routing Switch(config)#ip route 0.0.0.0 0.0.0.0 100.0.0.2 Switch(config)#end Router>en Router#conf t Router(config)#hostname R1 R1(config)#int f0/0 R1(config-if)#ip add 100.0.0.2 255.255.255.0 R1(config-if)#no shutdown R1(config-if)#exi R1(config)#int s2/0 R1(config-if)#ip add 200.0.0.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#exi R1(config)#ip route 192.168.0.0 255.255.255.0 100.0.0.1 R1(config)#ip route 192.168.1.0 255.255.255.0 100.0.0.1 R1(config)#access-list 10 permit 192.168.0.0 0.0.0.255 R1(config)#access-list 11 permit 192.168.1.0 0.0.0.255 R1(config)#ip nat pool qq 200.0.0.1 200.0.0.1 netmask 0.0.0.255 R1(config)#ip nat inside source list 10 pool qq overload R1(config)#ip nat inside source list 11 pool qq overload R1(config)#int f0/0 R1(config-if)#ip nat in R1(config-if)#ip nat inside R1(config-if)#exi R1(config)#int s2/0 R1(config-if)#ip nat o R1(config-if)#ip nat outside R1(config-if)#end R1(config)#ip route 0.0.0.0 0.0.0.0 s2/0 Router>en Router#conf t Router(config)#hostname R2 R2(config)#INT S3/0 R2(config-if)#ip add 200.0.0.2 255.255.255.0 R2(config-if)#no sh %LINK-5-CHANGED: Interface Serial3/0, changed state to up R2(config-if)#clock rate 64000 R2(config-if)#exi R2(config)#int loopback 0 R2(config-if)#ip add 20.0.0.1 255.255.255.0 R2(config-if)#no sh R2(config-if)#end
首页 1 2 3 4 5 下一页