批量命令行替你解决嵌入式开发中重复copy映像的烦恼

【菜科解读】
【起因】-使用VS2005编译生成image后,要拷贝到单板机的SD卡中再从SD卡中启动,这个过程要拷贝好几个映像文件,每次都要在release目录下搜索,费时费力,而烧写NAND启动映像文件也不同,需要重命名,容易出错,于是想到用bat命令实现自动拷贝,代码部分附在文后,主要使用了echo、set、goto、pause、copy、call等命令。
【幕后】-开发过程中发现如下问题: 1.单板机通过Micro Activesync 4.5与PC连接,在电脑中为一系统文件夹“移动设备”,这样在bat文件中无法直接复制文件到其中。
我谷歌了一下,有网友遇到过同样问题,暂无解决办法。
有一个办法使用RAPI,有空再研究吧,也恳请广大网友支招^_^ 2.bat命令无法往桌面拷贝文件,显示“命令不可用”,我就是下午简单的看了下bat命令,没有系统的学,故不知其因所在,也请大家指教3.bat文件无法在移动设备中运行,将bat文件放到移动设备中双击发现只能显示文件属性,本想通过这招实现移动设备和PC中的文件传递,⊙﹏⊙b汗【花絮】经过几天的努力,今天初步实现了自己定制的WinCE6.0 在SBC8100单板机上跑起来,鼠标、键盘、触屏、音频输出、USB-OTG、SD、WIFI、QQ、MSN、Flash lite、Silverlight、HIV注册表、全中文界面和中文输入等全部支持,很开心,后面要往驱程这一块走,希望WinCE6.0开发之路越走越顺,感谢谷歌、百度,感谢广大开发爱好者的无私奉献!【程序】view sourceprint?01 @echo off 02 @echo 注意:请先确保已做好历史文件备份,该操作将覆盖目录下同名文件 03 @pause 04 :main 05 echo 0.拷贝所有镜像到备份目录下(确保已转移历史版本) 06 echo 1.拷贝SD image到单板机中(确保已同步,文件将拷贝到D盘) 07 echo 2.拷贝NAND image到单板机中(确保已同步,文件将拷贝到D盘) 08 echo 3.拷贝SD image到电脑SD卡中(请确保SD卡插入) 09 echo 4.拷贝NAND image到电脑SD卡中(请确保SD卡插入) 10 echo 5.退出 11 @set /p var=input: 12 call :lab%var% 13 14 @:lab0 15 @echo 5 files to copy...please wait! 16 @echo 1.copy nk.bin... 17 @copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\nk.bin E:\Arm开发\SBC8100开发\镜像烧写\定制\ 18 @echo 2.copy MLO... 19 @copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\MLO E:\Arm开发\SBC8100开发\镜像烧写\定制\ 20 @echo 3.copy EBOOTSD.nb0... 21 @copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\EBOOTSD.nb0 E:\Arm开发\SBC8100开发\镜像烧写\定制\ 22 @echo 4.copy EBOOTNAND.nb0... 23 @copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\EBOOTNAND.nb0 E:\Arm开发\SBC8100开发\镜像烧写\定制\ 24 @echo 5.copy XLDRNAND.nb0... 25 @copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\XLDRNAND.nb0 E:\Arm开发\SBC8100开发\镜像烧写\定制\ 26 @echo Copy files done! 27 @goto main 28 29 ::拷贝SD image到D盘 30 @:lab1 31 @echo 3 files to copy...please wait! 32 @if exist D:\EBOOTNAND.nb0 del D:\EBOOTNAND.nb0 33 @if exist D:\XLDRNAND.nb0 del D:\XLDRNAND.nb0 34 @echo 1.copy nk.bin... 35 @copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\nk.bin D:\ 36 @echo 2.copy MLO... 37 @copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\MLO D:\MLO.exe 38 @echo 3.copy EBOOTSD.nb0... 39 @copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\EBOOTSD.nb0 D:\ 40 @echo Copy files done! 41 @goto main 42 43 ::拷贝NAND image到D盘 44 @:lab2 45 @echo 4 files to copy...please wait! 46 @if exist D:\EBOOTNAND.nb0 del D:\EBOOTNAND.nb0 47 @if exist D:\EBOOTSD.nb0 del D:\EBOOTSD.nb0 48 @echo 1.copy nk.bin... 49 @copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\nk.bin D:\ 50 @echo 2.copy MLO and rename it as "MLO.exe"... 51 @copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\MLO D:\MLO.exe 52 @echo 3.copy EBOOTNAND.nb0 and rename it as"EBOOTSD.nb0"... 53 @copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\EBOOTNAND.nb0 D:\EBOOTSD.nb0 54 @echo 4.copy XLDRNAND.nb0... 55 @copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\XLDRNAND.nb0 D:\ 56 @echo Copy files done! 57 @goto main 58 59 ::拷贝SD image到电脑SD卡中 60 @:lab3 61 @echo 3 files to copy...please wait! 62 @if not exist j:\ echo 请插入SD卡! 63 @if not exist j:\ goto main 64 @if exist j:\XLDRNAND.nb0 del j:\XLDRNAND.nb0 65 @echo 1.copy nk.bin... 66 @copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\nk.bin j:\nk.bin 67 @echo 2.copy MLO... 68 @copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\MLO j:\MLO 69 @echo 3.copy EBOOTSD.nb0... 70 @copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\EBOOTSD.nb0 j:\EBOOTSD.nb0 71 @echo Copy files done! 72 @goto main 73 74 ::拷贝NAND image到电脑SD卡中 75 @:lab4 76 @echo 4 files to copy...please wait! 77 @if not exist j:\ echo 请插入SD卡! 78 @if not exist j:\ goto main 79 @if exist j:\EBOOTSD.nb0 del j:\EBOOTSD.nb0 80 @echo 1.copy nk.bin... 81 @copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\nk.bin j:\nk.bin 82 @echo 2.copy MLO... 83 @copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\MLO j:\MLO 84 @echo 3.copy EBOOTNAND.nb0 and rename it as"EBOOTSD.nb0"... 85 @copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\EBOOTNAND.nb0 j:\EBOOTSD.nb0 86 @echo 4.copy XLDRNAND.nb0... 87 @copy D:\WINCE600\OSDesigns\SBC8100\SBC8100\RelDir\SBC8100_ARMV4I_Release\XLDRNAND.nb0 j:\XLDRNAND.nb0 88 @echo Copy files done! 89 @goto main 90 91 ::退出 92 @:lab5 93 exit 批量,命令行,替你,解决,嵌入式,开发,中,重复,
命令行下也玩IPSec
作为网络系统管理员,一项基本职责就是保证数据在网络传输中,不能被未经授权的人访问、查看或修改,在这中间,同时要保证数据能加密传输。
怎样做到这一点呢?Win2k网络中,我们可以通过IPSec来保护网络的安全。
IPSec的全称是Internet Protocol Security,翻译成中文就是Internet协议安全。
它的作用主要有两个:一个是保护 IP 数据包的内容,另外一点就是通过数据包筛选并实施受信任通讯来防御网络攻击。
这对于我们当有一些重要的数据在传输的过程中需要加以保护或者防止监听来说无疑是一个好消息。
由于是在IP层进行对数据的对称加密,封装的是整个的IP数据包,所以不需要为 TCP/IP 协议组中的每个协议设置单独的安全性,因为应用程序使用 TCP/IP 来将数据传递到 IP 协议层,并在这里进行保护。
相应的IPSec配置相对复杂,但是对于应用程序来说是透明的,因此不要求应用程序必须支持。
Win2k操作系统都支持IPSec,Win2k以前的版本,如Win 98与Win NT不支持IPSec。
在Win 2k的网络中,不管是局域网、广域网,都可以使用IPSec来保证网络的安全。
我们以前见到的文章都是讨论在图形界面下配置IPSec的,因为步骤比较多,所以很容易出错,并且效率不是怎么的高,那么我们是否可以在命令行下配置IPSec呢?答案是肯定的,今天我们就来讲讲如何在命令行下配置IPSec。
一:基础知识在开始文章前有必要先了解一些基础的知识,以便更好的阅读下面的文章。
1、IPSec的工作的过程:两台计算机在通讯的时候,如果已经设置好IPSec的策略,主机在通讯的时候会检查这个策略,策略在应用到主机的时候会有一个协商的过程,这个过程通过Security Association来实现。
协商后根据Policy的配置,两台计算机之间建立一个加密的连接,数据进行加密传输。
驱动程序将解密的数据包传输给TCP/IP的驱动程序,然后传输给接收端的应用程序。
2、IPSec的工作方式:⑴传送模式:保护两个主机之间的通讯,是默认的IPSec模式。
传送模式只支持Win2k操作系统,提供P2P(点对点)的安全性。
⑵隧道模式:封装、发送和拆封过程称之为 隧道 。
一般实现方法是在两个路由器上完成的。
在路由器两端配置使用IPSec,保护两个路由器之间的通讯。
主要用于广域网上,不提供各个网络内部的安全性。
3、IPSec的身份验证方法:⑴ Kerberos V5:这个是默认的身份验证方法,如果是在一个域中的成员,又是Kerberos V5协议的客户机,选择这一项。
比如一个域中的Win2k的计算机。
⑵证书:需要共同配置信任的CA。
⑶预共享密钥:双方在设置策略的时候使用一段共同协商好的密钥。
以上三种方法都可以作为身份验证的方法,一般在日常工作当中,如果是域中的Win2k的计算机之间就采用Kerberos的认证方式。
其他情况下一般可以采用第三种方式,双方协商一段密钥。
4、IPSec的加密模式:⑴身份验证加密技术:包括SNA和MD5⑵数据包加密技术:包括40-bit DES、56-bit DES⑶ 3DES:最安全的加密方法,相应的也会消耗更多的系统资源。
其他的关于IPSec的一些知识大家可以借助搜索引擎来实现,这里就不再展开了。
二:微软的礼物在命令行下配置IPSec,我们需要借助第三方的软件IPSecPol来实现(可以在光盘里找到),它是我们可爱的微软的免费提供的支持工具。
为什么我们要用IPSecPol这个工具呢?如果我们需要有大量的IP安全策略需要配置的话,一般的图形界面模式即费时又费力,而使用IPSecPol之后,我们可以利用脚本来实现,并且结合批处理,只要用户输入几个参数就可以在短短的时间内完成庞大的工作。
更重要的是,它可以实时配置策略,喜欢命令行下工作的你是否也开始对它感兴趣了?我们先来看看它的参数,如下所示:ipsecpol [\\computername] [-?] [-f FilterList] [-n NegotiationPolicyList] [-t TunnelAddress] [-a AuthMethodList] [-u] [-soft] [{-dialup | -lan}] [-1s SecurityMethodList] [-1k Phase1RekeyAfter] [-1p] [-confirm] [-w TYPE:DOMAIN] [-p PolicyName:PollInterval] [-r RuleName] [-x] [-y] [-o]下面我们对常用的几个参数进行解释:-f FilterList:过滤列表,这个列表的格式应该是下面这样的:A.B.C.D/mask:port=A.B.C.D/mask:port:protocol,左边的A.B.C.D代表的是源IP,右边的是目标IP,mask代表子网掩码,port是端口,protocol是协议类型。
我们举个例子,比如我的IP是166.111.30.30,我要把来自IP地址是166.111.40.40对我的Tcp端口7626请求的数据包过滤。
那么这个过滤列表就应该是这样的:166.111.40.40/255.255.252.0:7626=166.111.30.30/255.255.252.0:7626:tcp当然这里我们还可以使用通配符,用*代表任何IP地址,用0代表我自己的IP地址,我们还可以使用+符号,比如0+*:139:TCP代表过滤自己主机和任何来源ip的tcp端口139数据包;*+0:139:TCP代表过滤任何来源IP对自己主机tcp129端口发送的数据包。
-w TYPE:DOMAIN:这个是策略写入的位置,可以是注册表,这样类型是REG;也可以存储在目录里,这样的类型是DS。
我们一般选择是REG;-p PolicyName:PollInterval:这个是策略的名称,比如 Block RPC Attack Vectors ;-r RuleName:这个是规则的名称,比如 Block Outbound TCP 445 Rule ;-x:激活(指派)刚才配置的IP安全策略。
-y:不指派配置的IP安全策略。
-o:删除刚才设置的安全策略。
我们一般用的参数也就这样几个,其他的大家可以参看帮助文件。
三:具体实例还是来讲实例吧,我们结合 冲击波 蠕虫来进行解说。
冲击波 利用的端口有Tcp135、4444端口,Udp69端口,此外它还会发送Icmp数据包。
此外与RcpDcom有关的端口是Tcp135、445、139、593端口,Udp135、137、138、445端口。
如果我们要防范 冲击波 蠕虫,我们需要把来自外部对以上标明端口的连接过滤,为了不影响网络速度,还要禁止Icmp包。
假如我们感染了,还要防止自己主机向外部发送数据,因此我们来创建策略,策略名比如是:Anti Blaster,那么我们所要的命令如下:ipsecpol -w REG -p "Anti Blaster" -r "Block Inbound TCP 135 Rule" -f *+0:135:TCP -n BLOCKipsecpol -w REG -p "Anti Blaster" -r "Block Outbound TCP 135 Rule" -f 0+*:135:TCP -n BLOCKipsecpol -w REG -p "Anti Blaster" -r "Block Inbound TCP 4444 Rule" -f *+0:4444:TCP -n BLOCKipsecpol -w REG -p "Anti Blaster" -r "Block Outbound TCP 4444 Rule" -f 0+*:4444:TCP -n BLOCKipsecpol -w REG -p "Anti Blaster" -r "Block Inbound UDP 69 TFTP Rule" -f *+0:69:UDP -n BLOCKipsecpol -w REG -p "Anti Blaster" -r "Block Outbound UDP 69 TFTP Rule" -f 0+*:69:UDP -n BLOCKipsecpol -w REG -p "Anti Blaster" -r "Block Inbound ICMP Rule" -f *+0:0:ICMP -n BLOCKipsecpol -w REG -p "Anti Blaster" -r "Block Outbound ICMP Rule" -f 0+*:0:ICMP -n BLOCK最后,我们还要激活这个安全策略,命令是:ipsecpol -w REG -p "Anti Blaster" x更保险点的是,禁止对Rpc相关端口的连接,这样我们运行的命令如下:ipsecpol -w REG -p "Block RPC Attack" -r "Block Inbound UDP 135 Rule" -f *+0:135:UDP -n BLOCKipsecpol -w REG -p "Block RPC Attack" -r "Block Inbound TCP 135 Rule" -f *+0:135:TCP -n BLOCKipsecpol -w REG -p "Block RPC Attack" -r "Block Inbound UDP 137 Rule" -f *+0:137:UDP -n BLOCKipsecpol -w REG -p "Block RPC Attack" -r "Block Inbound UDP 138 Rule" -f *+0:138:UDP -n BLOCKipsecpol -w REG -p "Block RPC Attack" -r "Block Inbound TCP 139 Rule" -f *+0:139:TCP -n BLOCKipsecpol -w REG -p "Block RPC Attack" -r "Block Inbound TCP 445 Rule" -f *+0:445:TCP -n BLOCKipsecpol -w REG -p "Block RPC Attack" -r "Block Inbound UDP 445 Rule" -f *+0:445:UDP -n BLOCKipsecpol -w REG -p "Block RPC Attack" -r "Block Inbound TCP 593 Rule" -f *+0:593:TCP -n BLOCK然后再用命令ipsecpol -w REG -p "Block RPC Attack" x来激活安全策略。
上面只过滤了传入的连接请求,如果是过滤传出的,那么只要把*和0互换,把Inbound改成Outbound就可以了。
那如果 冲击波 过去了,我们不需要这样的安全策略的时候怎么办,当然你也可以在MMC(控制台)里删除掉,也可以用命令行来实现,比如我们要删除刚才防止冲击波的策略,具体命令是:ipsecpol -w REG -p "Anti Blaster" y //先用-y参数不指派这个策略ipsecpol -w REG -p "Anti Blaster" o //然后用-o参数删除我们可以写一个批处理来实现这样的功能,这个批处理可以在光盘里找到,以后要设置策略时,只要把端口修改下就可以了,即节省了时间,效率也大大提高了 :P。
文章就介绍到这里,如果大家有更好的方法或者是经验,可以与我交流,文章的不足之处也请大家指正。
命令行,下,也,玩,IPSec,命令行,下,也,玩,IPSe
Windows7激活批量操作指南:轻松激活无需复杂步骤
然而,随着产品支持逐渐停止,激活和管理这个经典系统对于许多人来说依然是一个必要的过程。
本文将为您提供一个详细的批量激活Windows 7的指南,使这一过程变得轻松无忧。
工具原料:系统版本:Windows 7品牌型号:Dell XPS 15 9520, Lenovo ThinkPad X1 Carbon 2022软件版本:KMSAuto Net 1.5.4一、批量激活Windows 7的重要性1、随着微软逐渐停止对Windows 7的支持,正版操作系统的激活显得尤为重要。
这不仅能保障安全更新,而且还确保了所有功能正常运作。
不过,出于对批量管理和时间效率的考虑,许多企业和个人用户需要一种简便的方法来大批量地激活其他设备上的Windows 7。
2、批量激活Windows 7可以显著减少在大规模部署时所需的时间和劳动力成本。
通过自动化工具,管理员可以避免传统方法中的手动激活过程,为设备配置操作系统提供更为快捷且有效的解决方案。
二、选择合适的工具1、在市面上,有多种工具可以实现Windows 7的激活。
KMSAuto Net是近年来较为普遍的一种,它以便捷的操作和高效的性能而闻名。
使用前,请确认设备上已经关闭了防病毒软件,以防止激活工具被误认作恶意程序。
2、为了实现最佳效果,确保下载的工具版本是最新的。
在使用这类软件时,请遵循相关法律法规,避免非法用途。
三、Windows 7批量激活步骤1、首先,下载并解压KMSAuto Net 1.5.4软件。
确保下载的软件源是可靠的,以避免潜在的安全风险。
2、打开KMSAuto Net程序,依次点击“Activation”选项卡,然后选择“Activate Windows”。
3、程序将自动检测系统版本并执行相应的激活操作。
整个过程通常只需几分钟,即可完成批量激活操作。
4、激活完成后,重新启动设备以确保所有更改已生效。
检查Windows的激活状态可以在“计算机”属性中确认。
拓展知识:1、什么是KMS激活?KMS,全称为Key Management Service,是微软为大客户提供的一种批量激活服务。
KMS允许在企业内部的网络环境中,通过一个KMS服务器自动完成一部分设备的激活。
与个人密钥不同,KMS的优势在于其不需要每台设备都连接互联网即可完成激活。
2、其他激活方法选择:除了KMS工具外,用户还可以考虑通过电话激活,其中涉及给微软客户支持提供安装ID,然后根据反馈激活密钥。
不过,这一方法更适合用于小规模或单个设备的情况,不太适合大批量激活的场景。