有时,退一步,能一口气进几步,只是这先退一步需要勇气和自信。

用心爱你,努力工作。

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  86 随笔 :: 0 文章 :: 32 评论 :: 0 Trackbacks

2010年2月1日 #

必须掌握的八个cmd 命令 

一,ping    

  它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它 所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我 们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。下面就来看看它的一些常用的操作。先看看帮助吧,在DOS窗口中键入:ping /? 回车,。所示的帮助画面。在此,我们只掌握一些基本的很有用的参数就可以了(下同)。    

  -t 表示将不间断向目标IP发送数据包,直到我们强迫其停止。试想,如果你使用100M的宽带接入,而目标IP是56K的小猫,那么要不了多久,目标IP就因为承受不了这么多的数据而掉线,呵呵,一次攻击就这么简单的实现了。    

  -l 定义发送数据包的大小,默认为32字节,我们利用它可以最大定义到65500字节。结合上面介绍的-t参数一起使用,会有更好的效果哦。    

  -n 定义向目标IP发送数据包的次数,默认为3次。如果网络速度比较慢,3次对我们来说也浪费了不少时间,因为现在我们的目的仅仅是判断目标IP是否存在,那么就定义为一次吧。    

  说明一下,如果-t 参数和 -n参数一起使用,ping命令就以放在后面的参数为标准,比如"ping IP -t -n 3",虽然使用了-t参数,但并不是一直ping下去,而是只ping 3次。另外,ping命令不一定非得ping IP,也可以直接ping主机域名,这样就可以得到主机的IP。    

  下面我们举个例子来说明一下具体用法。    

  这里time=2表示从发出数据包到接受到返回数据包所用的时间是2秒,从这里可以判断网络连接速度的大小。从TTL的返回值可以初步判断被ping主机的操作系统,之所以说"初步判断"是因为这个值是可以修改的。这里TTL=32表示操作系统可能是 win98。 

  (小知识:如果TTL=128,则表示目标主机可能是Win2000;如果TTL=250,则目标主机可能是Unix) 

  至于利用ping命令可以快速查找局域网故障,可以快速搜索最快的QQ服务器,可以对别人进行ping攻击……这些就靠大家自己发挥了。    

二,nbtstat    

  该命令使用TCP/IP上的NetBIOS显示协议统计和当前TCP/IP连接,使用这个命令你可以得到远程主机的NETBIOS信息,比如用户名、所属的工作组、网卡的MAC地址等。在此我们就有必要了解几个基本的参数。    

  -a 使用这个参数,只要你知道了远程主机的机器名称,就可以得到它的NETBIOS信息(下同)。    

  -A 这个参数也可以得到远程主机的NETBIOS信息,但需要你知道它的IP。 

  -n 列出本地机器的NETBIOS信息。    

  当得到了对方的IP或者机器名的时候,就可以使用nbtstat命令来进一步得到对方的信息了,这又增加了我们入侵的保险系数。    

三,netstat 

  这是一个用来查看网络状态的命令,操作简便功能强大。    

  -a 查看本地机器的所有开放端口,可以有效发现和预防木马,可以知道机器所开的服务等信息,如图4。    

  这里可以看出本地机器开放有FTP服务、Telnet服务、邮件服务、WEB服务等。用法:netstat -a IP。 

  -r 列出当前的路由信息,告诉我们本地机器的网关、子网掩码等信息。用法:netstat -r IP。 

四,tracert 

  跟踪路由信息,使用此命令可以查出数据从本地机器传输到目标主机所经过的所有途径,这对我们了解网络布局和结构很有帮助。如图5。    

  这里说明数据从本地机器传输到192.168.0.1的机器上,中间没有经过任何中转,说明这两台机器是在同一段局域网内。用法:tracert IP。    

五,net    

  这个命令是网络命令中最重要的一个,必须透彻掌握它的每一个子命令的用法,因为它的功能实在是太强大了,这简直就是 微软为我们提供的最好的入侵工具。首先让我们来看一看它都有那些子命令,键入net /?回车如图6。 

  在这里,我们重点掌握几个入侵常用的子命令。    

  net view    

  使用此命令查看远程主机的所以共享资源。命令格式为net view \IP。   

  net use 

  把远程主机的某个共享资源影射为本地盘符,图形界面方便使用,呵呵。命令格式为net use x: \IP\sharename。上面一个表示把192.168.0.5IP的共享名为magic的目录影射为本地的Z盘。下面表示和192.168.0.7 建立IPC$连接(net use \IP\IPC$ "password" /user:"name"),    

  建立了IPC$连接后,呵呵,就可以上传文件了:copy nc.exe \192.168.0.7\admin$,表示把本地目录下的nc.exe传到远程主机,结合后面要介绍到的其他DOS命令就可以实现入侵了。    

  net start 

  使用它来启动远程主机上的服务。当你和远程主机建立连接后,如果发现它的什么服务没有启动,而你又想利用此服务怎么办?就使用这个命令来启动吧。用法:net start servername,如图9,成功启动了telnet服务。    

  net stop 

  入侵后发现远程主机的某个服务碍手碍脚,怎么办?利用这个命令停掉就ok了,用法和net start同。    

  net user 

  查看和帐户有关的情况,包括新建帐户、删除帐户、查看特定帐户、激活帐户、帐户禁用等。这对我们入侵是很有利的,最重要的,它为我们克隆帐户提供了前提。键入不带参数的net user,可以查看所有用户,包括已经禁用的。下面分别讲解。 

  1,net user abcd 1234 /add,新建一个用户名为abcd,密码为1234的帐户,默认为user组成员。 

  2,net user abcd /del,将用户名为abcd的用户删除。 

  3,net user abcd /active:no,将用户名为abcd的用户禁用。 

  4,net user abcd /active:yes,激活用户名为abcd的用户。 

  5,net user abcd,查看用户名为abcd的用户的情况   

  net localgroup 

  查看所有和用户组有关的信息和进行相关操作。键入不带参数的net localgroup即列出当前所有的用户组。在入侵过程中,我们一般利用它来把某个帐户提升为administrator组帐户,这样我们利用这个帐户 就可以控制整个远程主机了。用法:net localgroup groupname username /add。    

  现在我们把刚才新建的用户abcd加到administrator组里去了,这时候abcd用户已经是超级管理员了,呵呵,你可以再使用net user abcd来查看他的状态,和图10进行比较就可以看出来。但这样太明显了,网管一看用户情况就能漏出破绽,所以这种方法只能对付菜鸟网管,但我们还得知 道。现在的手段都是利用其他工具和手段克隆一个让网管看不出来的超级管理员,这是后话。有兴趣的朋友可以参照《黑客防线》第30期上的《由浅入深解析隆帐 户》一文。    

  net time 

  这个命令可以查看远程主机当前的时间。如果你的目标只是进入到远程主机里面,那么也许就用不到这个命令了。但简单的入侵成功了,难道只是看看 吗?我们需要进一步渗透。这就连远程主机当前的时间都需要知道,因为利用时间和其他手段(后面会讲到)可以实现某个命令和程序的定时启动,为我们进一步入 侵打好基础。用法:net time \IP。    

六,at 

这个命令的作用是安排在特定日期或时间执行某个特定的命令和程序(知道net time的重要了吧?)。当我们知道了远程主机的当前时间,就可以利用此命令让其在以后的某个时间(比如2分钟后)执行某个程序和命令。用法:at time command \computer。    

  表示在6点55分时,让名称为a-01的计算机开启telnet服务(这里net start telnet即为开启telnet服务的命令)。    

七,ftp    

  大家对这个命令应该比较熟悉了吧?网络上开放的ftp的主机很多,其中很大一部分是匿名的,也就是说任何人都可以登陆上去。现在如果你扫到了一 台开放 ftp服务的主机(一般都是开了21端口的机器),如果你还不会使用ftp的命令怎么办?下面就给出基本的ftp命令使用方法。 

  首先在命令行键入ftp回车,出现ftp的提示符,这时候可以键入"help"来查看帮助(任何DOS命令都可以使用此方法查看其帮助)。    

  大家可能看到了,这么多命令该怎么用?其实也用不到那么多,掌握几个基本的就够了。    

  首先是登陆过程,这就要用到open了,直接在ftp的提示符下输入"open 主机IP ftp端口"回车即可,一般端口默认都是21,可以不写。接着就是输入合法的用户名和密码进行登陆了,这里以匿名ftp为例介绍。    

  用户名和密码都是ftp,密码是不显示的。当提示**** logged in时,就说明登陆成功。这里因为是匿名登陆,所以用户显示为Anonymous。    

  接下来就要介绍具体命令的使用方法了。    

  dir 跟DOS命令一样,用于查看服务器的文件,直接敲上dir回车,就可以看到此ftp服务器上的文件。 

  cd 进入某个文件夹。 

  get 下载文件到本地机器。 

  put 上传文件到远程服务器。这就要看远程ftp服务器是否给了你可写的权限了,如果可以,呵呵,该怎么 利用就不多说了,大家就自由发挥去吧。 

  delete 删除远程ftp服务器上的文件。这也必须保证你有可写的权限。 

  bye 退出当前连接。 

  quit 同上。 

八,telnet 

  功能强大的远程登陆命令,几乎所有的入侵者都喜欢用它,屡试不爽。为什么?它操作简单,如同使用自己的机器一样,只要你熟悉DOS命令,在成功 以 administrator身份连接了远程机器后,就可以用它来干你想干的一切了。下面介绍一下使用方法,首先键入telnet回车,再键入help查看 其帮助信息。    

  然后在提示符下键入open IP回车,这时就出现了登陆窗口,让你输入合法的用户名和密码,这里输入任何密码都是不显示的。    

  当输入用户名和密码都正确后就成功建立了telnet连接,这时候你就在远程主机上具有了和此用户一样的权限,利用DOS命令就可以实现你想干的事情了。这里我使用的超级管理员权限登陆的。   

  到这里为止,网络DOS命令的介绍就告一段落了,这里介绍的目的只是给菜鸟网管一个印象,让其知道熟悉和掌握网络DOS命令的重要性。其实和网 络有关的DOS命令还远不止这些,这里只是抛砖引玉,希望能对广大菜鸟网管有所帮助。学好DOS对当好网管有很大的帮助,特别的熟练掌握了一些网络的 DOS命令。 

  另外大家应该清楚,任何人要想进入系统,必须得有一个合法的用户名和密码(输入法漏洞差不多绝迹了吧),哪怕你拿到帐户的只有一个很小的权限,你也可以利用它来达到最后的目的。所以坚决消灭空口令,给自己的帐户加上一个强壮的密码,是最好的防御弱口令入侵的方法。 

  最后,由衷的说一句,培养良好的安全意识才是最重要的。 

========================================= 

开始→运行→命令集锦 

winver---------检查Windows版本 

wmimgmt.msc----打开windows管理体系结构(WMI) 

wupdmgr--------windows更新程序 

wscript--------windows脚本宿主设置 

write----------写字板 

winmsd---------系统信息 

wiaacmgr-------扫描仪和照相机向导 

winchat--------XP自带局域网聊天 

mem.exe--------显示内存使用情况 

Msconfig.exe---系统配置实用程序 

mplayer2-------简易widnows media player 

mspaint--------画图板 

mstsc----------远程桌面连接 

mplayer2-------媒体播放机 

magnify--------放大镜实用程序 

mmc------------打开控制台 

mobsync--------同步命令 

dxdiag---------检查DirectX信息 

drwtsn32------ 系统医生 

devmgmt.msc--- 设备管理器 

dfrg.msc-------磁盘碎片整理程序 

diskmgmt.msc---磁盘管理实用程序 

dcomcnfg-------打开系统组件服务 

ddeshare-------打开DDE共享设置 

dvdplay--------DVD播放器 

net stop messenger-----停止信使服务 

net start messenger----开始信使服务 

notepad--------打开记事本 

nslookup-------网络管理的工具向导 

ntbackup-------系统备份和还原 

narrator-------屏幕"讲述人" 

ntmsmgr.msc----移动存储管理器 

ntmsoprq.msc---移动存储管理员操作请求 

netstat -an----(TC)命令检查接口 

syncapp--------创建一个公文包 

sysedit--------系统配置编辑器 

sigverif-------文件签名验证程序 

sndrec32-------录音机 

shrpubw--------创建共享文件夹 

secpol.msc-----本地安全策略 

syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码 

services.msc---本地服务设置 

Sndvol32-------音量控制程序 

sfc.exe--------系统文件检查器 

sfc /scannow---windows文件保护 

tsshutdn-------60秒倒计时关机命令 

tourstart------xp简介(安装完成后出现的漫游xp程序) 

taskmgr--------任务管理器 

eventvwr-------事件查看器 

eudcedit-------造字程序 

explorer-------打开资源管理器 

packager-------对象包装程序 

perfmon.msc----计算机性能监测程序 

progman--------程序管理器 

regedit.exe----注册表 

rsop.msc-------组策略结果集 

regedt32-------注册表编辑器 

rononce -p ----15秒关机 

regsvr32 /u *.dll----停止dll文件运行 

regsvr32 /u zipfldr.dll------取消ZIP支持 

cmd.exe--------CMD命令提示符 

chkdsk.exe-----Chkdsk磁盘检查 

certmgr.msc----证书管理实用程序 

calc-----------启动计算器 

charmap--------启动字符映射表 

cliconfg-------SQL SERVER 客户端网络实用程序 

Clipbrd--------剪贴板查看器 

conf-----------启动netmeeting 

compmgmt.msc---计算机管理 

cleanmgr-------垃圾整理 

ciadv.msc------索引服务程序 

osk------------打开屏幕键盘 

odbcad32-------ODBC数据源管理器 

oobe/msoobe /a----检查XP是否激活 

lusrmgr.msc----本机用户和组 

logoff---------注销命令 

iexpress-------木马捆绑工具,系统自带 

Nslookup-------IP地址侦测器 

fsmgmt.msc-----共享文件夹管理器 

utilman--------辅助工具管理器 

gpedit.msc-----组策略


转自 http://blog.csdn.net/ccsbb/archive/2010/01/27/5261954.aspx

posted @ 2010-02-01 11:35 王生生 阅读(26) | 评论 (0)编辑 收藏

2010年1月28日 #

mysql> UPDATE EACONTACTGROUPS A

SET GROUPNAME=(SELECT CONCAT(B.GROUPNAME,'-',A.GROUPNAME) FROM EACONTACTGROUPS B WHERE B.CORPID=A.CORPID AND B.USERID=A.USERID AND B.GROUPID=A.PARENTGROUPID)

WHERE A.PARENTGROUPID IS NOT NULL;

ERROR 1093 (HY000): You can't specify target table 'A' for update in FROM clause

上面是目前MYSQL5.0仍然有的限制,文档中说:

  • In general, you cannot modify a table and select from the same table in a subquery. For example, this limitation applies to statements of the following forms:

    DELETE FROM t WHERE ... (SELECT ... FROM t ...);UPDATE t ... WHERE col = (SELECT ... FROM t ...);{INSERT|REPLACE} INTO t (SELECT ... FROM t ...);

    Exception: The preceding prohibition does not apply if you are using a subquery for the modified table in the

    FROM

    clause. Example:

    UPDATE t ... WHERE col = (SELECT (SELECT ... FROM t...) AS _t ...);

    Here the prohibition does not apply because a subquery in the

    FROM

    clause is materialized as a temporary table, so the relevant rows in

    t

    have already been selected by the time the update to

    t

    takes place. 依据文档,改成下面的样子就行了:

    mysql> UPDATE EACONTACTGROUPS A

  • SET GROUPNAME=(SELECT CONCAT(B.GROUPNAME,'-',A.GROUPNAME) FROM ( SELECT GROUPNAME,CORPID,USERID,GROUPID,PARENTGROUPID FROM EACONTACTGROUPS) B

    WHERE B.CORPID=A.CORPID AND B.USERID=A.USERID AND B.GROUPID=A.PARENTGROUPID)

    WHERE A.PARENTGROUPID IS NOT NULL;

    Query OK, 16 rows affected (0.01 sec)

    Rows matched: 16 Changed: 16 Warnings: 0

    注:今天写一个删除语句时找到的一点资料.解决了一个简单的删除语句.呵呵,以后注意了,

    原句:delete  from menu_item  where parent_id =(select menu_item_id from menu_item where menu_data like '%manageVendors%');

    修改后:delete  from menu_item  where parent_id =(select temp.menu_item_id from (select m.menu_item_id,m.menu_data from menu_item m) temp where temp.menu_data like '%manageVendors%');

    posted @ 2010-01-28 12:56 王生生 阅读(35) | 评论 (0)编辑 收藏

    2009年12月31日 #

    bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure]]]]] )

          setcookie() 定义一个和其余的 HTTP 标头一起发送的 cookie。和其它标头一样,cookie 必须在脚本的任何其它输出之前发送(这是协议限制)。这需要将本函数的调用放到任何输出之前,包括 <html> 和 <head> 标签以及任何空格。如果在调用 setcookie() 之前有任何输出,本函数将失败并返回 FALSE。如果 setcookie() 函数成功运行,将返回 TRUE。这并不说明用户是否接受了 cookie。

         注: 自 PHP 4 起,可以用输出缓存来在调用本函数前输出内容,代价是把所有向浏览器的输出都缓存在服务器,直到下命令发送它们。可以在代码中使用 ob_start() 及 ob_end_flush() 来实现这样的功能,或者通过修改 php.ini 中的 output_buffering 配置选项来实现,也可以通过修改服务器配置文件来实现。

          除了 name 外,其它所有参数都是可选的。可以用空字符串("")替换某参数以跳过该参数。因为参数 expire 是整型,不能用空字符串掉过,可以用零(0)来代替 。下面的说明对 setcookie() 的每一个参数都进行了解释。可以对照 Netscape cookie 规范以了解 setcookie() 的每一个参数的细节以及通过阅读 RFC 2965 了解 HTTP cookie 的工作方式。

    1. setcookie() 参数详解
    参数 说明 举例
    name Cookie 的名字:   使用 $_COOKIE['cookiename'] 调用名为 cookiename 的 cookie。
    value Cookie 的值:此值保存在客户端,不要用来保存敏感数据。   假定 name 是 'cookiename',可以通过 $_COOKIE['cookiename'] 取得其值。
    expire Cookie 过期的时间:这是个 Unix 时间戳,即从 Unix 纪元开始的秒数。换而言之,通常用 time() 函数再加上秒数来设定 cookie 的失效期。或者用 mktime()来实现。   time()+60*60*24*30 将设定 cookie 30 天后失效。如果未设定,cookie 将会在会话结束后(一般是浏览器关闭)失效。
    path Cookie 在服务器端的有效路径:   如果该参数设为 '/' 的话,cookie 就在整个 domain 内有效,如果设为 '/foo/',cookie 就只在 domain 下的 /foo/ 目录及其子目录内有效,例如 /foo/bar/。默认值为设定 cookie 的当前目录。
    domain 该 cookie 有效的域名:   要使 cookie 能在如 example.com 域名下的所有子域都有效的话,该参数应该设为 '.example.com'。虽然 . 并不必须的,但加上它会兼容更多的浏览器。如果该参数设为 www.example.com 的话,就只在 www 子域内有效。细节见 Cookie 规范中的 tail matching。
    secure 指明: cookie 是否仅通过安全的 HTTPS 连接传送。当设成 TRUE 时,cookie 仅在安全的连接中被设置。默认值为 FALSE。   0 或 1

          当 cookie 被设置后,便可以在其它页面通过 $_COOKIE 或 $HTTP_COOKIE_VARS 数组取得其值。需要注意的是,autoglobals 的 $_COOKIE 形式适用于 PHP 4.1.0 或更高版本。而 $HTTP_COOKIE_VARS 则从 PHP 3 起就可以使用。Cookie 的值也会被保存到 $_REQUEST 数组中。

         注: 如果 PHP 的选项 register_globals 被设为 on 的话,cookie 的值仍然会被斌到变量内。在下面的例子中,$TestCookie 会被注册,但是仍然推荐使用 $_COOKIE 数组。

    常见缺陷:

         *       Cookies 不会在设置它的本页生效,要测试一个 cookie 是否被成功的设定,可以在其到期之前通过另外一个页面来访问其值。过期时间是通过参数 expire 来设置的。可以简单地使用 print_r($_COOKIE); 来调试现有的 cookies。

         *       Cookie 必须用和设定时的同样的参数才能删除。如果其值一个空字符串,或者是 FALSE,并且其它的参数都和前一次调用 setcookie 时相同,那么所指定名称的 cookie 将会在远程客户端被删除。

         *       由于把 cookie 的值设为 FALSE 会使客户端尝试删除这个 cookie,所以要在 cookie 上保存 TRUE 或 FALSE 时不应该直接使用 boolean 值,而应该用 0 来表示 FALSE,用 1 来表示 TRUE

         *       可以把 cookie 的名称设置成一个数组,但是数组 cookie 中的每个元素的值将会被单独保存在用户的系统中。考虑使用 explode() 函数用多个名称和值设定一个 cookie。不推荐将 serialize() 用于此目的,因为它可能会导致一个安全漏洞。

            在 PHP 3 中,在同一个 PHP 脚本中多次使用 setcookie() 来设置 cookie,将会按照倒序的方式来分别执行,如果想要在插入另外一个 cookie 之前删除一个 cookie,要把插入放到删除之前。自 PHP 4 起,多次调用 setcookie() 则是按照顺序来执行的。

    下面一些例子说明了如何发送 cookie:

    例子 1. setcookie() 发送例子
    $value = 'something from somewhere';

    setcookie("TestCookie", $value);
    setcookie("TestCookie", $value,time()+3600);   /* expire in 1 hour */
    setcookie("TestCookie", $value,time()+3600, "/~rasmus/", ".utoronto.ca", 1);

    注意 cookie 中值的部分在发送的时候会被自动用 urlencode 编码并在接收到的时候被自动解码并把值赋给与自己同名的 cookie 变量。如果不想这样并且在使用 PHP 5 的话,可以用 setrawcookie() 来代替。下面这个简单的例子可以得到刚才所设定的 cookie 的值:

    <?php
    // 输出单独的 cookie
    echo $_COOKIE["TestCookie"];
    echo $HTTP_COOKIE_VARS["TestCookie"];

    // 另一个调试的方法就是输出所有的 cookie
    print_r($_COOKIE);
    ?>

          要删除 cookie 需要确保它的失效期是在过去,才能触发浏览器的删除机制。下面的例子说明了如何删除刚才设置的 cookie:

    例子 2. setcookie() 删除例子
    // 将过期时间设为一小时前
    setcookie("TestCookie", "", time() - 3600);
    setcookie("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca", 1);

          也可以通过在 cookie 名称中使用数组符号来设定数组 cookie,可以设定多个 cookie 作为数组单元,在脚本提取 cookie 时所有的值都放在一个数组中:

    例子 3. setcookie() 中使用数组的例子
    <?php
    // 设定 cookie
    setcookie("cookie[three]", "cookiethree");
    setcookie("cookie[two]", "cookietwo");
    setcookie("cookie[one]", "cookieone");

    // 刷新页面后,显示出来
    if (isset($_COOKIE['cookie'])) {
        foreach ($_COOKIE['cookie'] as $name => $value) {
            echo "$name : $value <br />\n";
        }
    }
    ?>

    上例将输出:

    three : cookiethree
    two : cookietwo
    one : cookieone

         注: 下面的一些 RFC 也具参考价值:RFC 2109 和 RFC 2695。

         注意 expire 参数的接受的是 Unix 时间戳,而不是日期格式 Wdy, DD-Mon-YYYY HH:MM:SS GMT,这是因为 PHP 在内部进行了转换。

         expire 是与客户端的时间相比较,和服务器时间可能不同。

         注: 向 Microsoft Internet Explorer 4 Service Pack 1 不能正确处理设定了 path 的 cookie。

         Netscape Communicator 4.05 及 Microsoft Internet Explorer 3.x 不能正确处理没有设定 path 和 time 的 cookie。

    参见 header(),setrawcookie()

    posted @ 2009-12-31 16:22 王生生 阅读(42) | 评论 (0)编辑 收藏

    2009年12月21日 #

    方法主要有三种

    转换函数、强制类型转换、利用js变量弱类型转换。

    1. 转换函数

    js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。

    在判断字符串是否是数字值前,parseInt()和parseFloat()都会仔细分析该字符串。parseInt()方法首先查看位置0处的字符, 判断它是否是个有效数字;如果不是,该方法将返回NaN,不再继续执行其他操作。但如果该字符是有效数字,该方法将查看位置1处的字符,进行同样的测试。 这一过程将持续到发现非有效数字的字符为止,此时parseInt()将把该字符之前的字符串转换成数字。

    例如,如果要把字符串 "1234blue "转换成整数,那么parseInt()将返回1234,因为当它检测到字符b时,就会停止检测过程。字符串中包含的数字字面量会被正确转换为数字,因此 字符串 "0xA "会被正确转换为数字10。不过,字符串 "22.5 "将被转换成22,因为对于整数来说,小数点是无效字符。一些示例如下:

    parseInt("1234blue");   //returns   1234
    parseInt("0xA");   //returns   10
    parseInt("22.5");   //returns   22
    parseInt("blue");   //returns   NaN

    parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数指定的,所以要解析十六进制的值,需如下调用parseInt()方法:
    parseInt("AF",   16);   //returns   175
    当然,对二进制、八进制,甚至十进制(默认模式),都可以这样调用parseInt()方法:
    parseInt("10",   2);   //returns   2
    parseInt("10",   8);   //returns   8
    parseInt("10",   10);   //returns   10
    如果十进制数包含前导0,那么最好采用基数10,这样才不会意外地得到八进制的值。例如:
    parseInt("010");   //returns   8
    parseInt("010",   8);   //returns   8
    parseInt("010",   10);   //returns   10
    在这段代码中,两行代码都把字符串 "010 "解析成了一个数字。第一行代码把这个字符串看作八进制的值,解析它的方式与第二行代码(声明基数为8)相同。最后一行代码声明基数为10,所以iNum3最后等于10。

    parseFloat()方法与parseInt()方法的处理方式相似,从位置0开始查看每个字符,直到找到第一个非有效的字符为止,然后把该字符之前 的字符串转换成数字。不过,对于这个方法来说,第一个出现的小数点是有效字符。如果有两个小数点,第二个小数点将被看作无效的,parseFloat() 方法会把这个小数点之前的字符串转换成数字。这意味着字符串 "22.34.5 "将被解析成22.34。
    使用parseFloat()方法的另一不同之处在于,字符串必须以十进制形式表示浮点数,而不能用八进制形式或十六进制形式。该
    方法会忽略前导0,所以八进制数0908将被解析为908。对于十六进制数0xA,该方法将返回NaN,因为在浮点数中,x不是有效字符。此外,parseFloat()也没有基模式。

    下面是使用parseFloat()方法的示例:
    parseFloat("1234blue");   //returns   1234.0
    parseFloat("0xA");   //returns   NaN
    parseFloat("22.5");   //returns   22.5
    parseFloat("22.34.5");   //returns   22.34
    parseFloat("0908");   //returns   908
    parseFloat("blue");   //returns   NaN

    2. 强制类型转换

    还可使用强制类型转换(type casting)处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。
    ECMAScript中可用的3种强制类型转换如下:
    Boolean(value)——把给定的值转换成Boolean型;
    Number(value)——把给定的值转换成数字(可以是整数或浮点数);
    String(value)——把给定的值转换成字符串。
    用这三个函数之一转换值,将创建一个新值,存放由原始值直接转换成的值。这会造成意想不到的后果。
    当要转换的值是至少有一个字符的字符串、非0数字或对象(下一节将讨论这一点)时,Boolean()函数将返回true。如果该值是空字符串、数字0、#ff0000或null,它将返回false。

    可以用下面的代码段测试Boolean型的强制类型转换。

    Boolean("");   //false   –   empty   string
    Boolean("hi");   //true   –   non-empty   string
    Boolean(100);   //true   –   non-zero   number
    Boolean(null);   //false   -   null
    Boolean(0);   //false   -   zero
    Boolean(new   Object());   //true   –   object

    Number()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是部分值。还记得 吗,parseInt()和parseFloat()方法只转换第一个无效字符之前的字符串,因此 "4.5.6 "将被转换为 "4.5 "。用Number()进行强制类型转换, "4.5.6 "将返回NaN,因为整个字符串值不能转换成数字。如果字符串值能被完整地转换,Number()将判断是调用parseInt()方法还是调用 parseFloat()方法。下表说明了对不同的值调用Number()方法会发生的情况:

    用  法  结  果
    Number(false)  0
    Number(true)  1
    Number(undefined) NaN
    Number(null)  0
    Number( "5.5 ")  5.5
    Number( "56 ")  56
    Number( "5.6.7 ") NaN
    Number(new   Object())  NaN
    Number(100)  100 

    最后一种强制类型转换方法String()是最简单的,因为它可把任何值转换成字符串。要执行这种强制类型转换,只需要调用作为参数传递进来的值的 toString()方法,即把1转换成   "1 ",把true转换成 "true ",把false转换成 "false ",依此类推。强制转换成字符串和调用toString()方法的唯一不同之处在于,对null或undefined值强制类型转换可以生成字符串而不引 发错误:

    var   s1   =   String(null);   //"null"
    var   oNull   =   null;
    var   s2   =   oNull.toString();   //won’t   work,   causes   an   error

    3. 利用js变量弱类型转换

    举个小例子,一看,就会明白了。
    <script>
    var   str= '012.345 ';
    var   x   =   str-0;
    x   =   x*1;
    </script>

    上例利用了js的弱类型的特点,只进行了算术运算,实现了字符串到数字的类型转换,不过这个方法还是不推荐的。

    posted @ 2009-12-21 18:20 王生生 阅读(60) | 评论 (0)编辑 收藏

    2009年12月3日 #

        1、你以为最酸的感觉是吃醋吗?不是,最酸的感觉是没权吃醋。
    2、低头要有勇气,抬头要有底气。
    3、上天决定了谁是你的亲戚,幸运的是在选择朋友方面它给你留了余地。
    4、人生就像一杯茶,不会苦一辈子,但总会苦一阵子。
    5、不要见一个爱一个,爱的太多,你的爱就要贬值。
    6、当我们搬开别人架下的绊脚石时,也许恰恰是在为自己铺路。  7、不是每句 “ 对不起 ” ,都能换来 “ 没关系 ” 。
    8、世界上只有想不通的人,没有走不通的路。
    9、地球是运动的,一个人不会永远处在倒霉的位置。
    10、在事实面前,我们的想象力越发达,后果就越不堪设想。
    11、当别人开始说你是疯子的时候,你离成功就不远了 ……
    12、理想和现实总是有差距的,幸好还有差距,不然,谁还稀罕理想?  
    13、说有上辈子的人是在骗自己;说有下辈子的人是在骗别人。
    14、任何人都可以变得狠毒,只要你尝试过嫉妒。
    15、常常告诫自己不要在一棵树上吊死,结果 …… 在树林里迷路了。
    16、爱情就像攥在手里的沙子,攥的越紧,流失的越快。
    17、人生有两大悲剧:一个是得不到想要的东西,另一个是得到了不想要的东西。
    18、成熟不是心变老,而是眼泪在眼里打转却还保持微笑。  
    19、问候不一定要郑重其事,但一定要真诚感人。
    20、同样的一瓶饮料,便利店里 2 块钱,五星饭店里 60 块,很多的时候,一个人的价值取决于所在的位置。
    21、真坏人并不可怕,可怕的是假好人。
    22、把不忙不闲的工作做的出色,把不咸不淡的生活过得精彩。
    23、忙碌是一种幸福,让我们没时间体会痛苦;奔波是一种快乐,让我们真实地感受生活;疲惫是一种享受,让我们无暇空虚。
    24、就算不快乐也不要皱眉,因为你永远不知道谁会爱上你的笑容。  
    25、当大部分人都在关注你飞的高不高时,只有少部分人关心你飞的累不累,这就是友情。
    26、天使之所以会飞,是因为她们把自己看得很轻 ……
    27、试金可以用火,试女人可以用金,试男人可以用女人。
    28、喜欢一个人,就是在一起很开心;爱一个人,就是即使不开心,也想在一起。
    29、幽默就是一个人想哭的时候还有笑话的兴致。
    30、人之所以活得累,是因为放不下架子,撕不开面子,解不开情节。  
    31、漂亮只能为别人提供眼福,却不一定换到幸福。
    32、美丽让男人停下,智慧让男人留下。
    33、如果你为自己定的所有目标都已达到,那么说明你定的目标还不够远大。
    34、生活可以将就,生活也可以讲究。
    35、女人的眼泪是没用的液体,但你让女人流泪说明你很没用。
    36、付出真心,才会得到真心,却可能伤的彻底;保持距离,才能保护自己,却注定永远寂寞。
    37、说真话的最大好处就是你不必记得你都说些什么。
    38、有时候,不是对方不在乎你,而是你把对方看的太重。
    posted @ 2009-12-03 21:24 王生生 阅读(19) | 评论 (0)编辑 收藏

    2009年11月24日 #

         摘要: Normal 0 7.8 pt 0 2 false false false MicrosoftInternetExplorer4 /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal";...  阅读全文
    posted @ 2009-11-24 13:38 王生生 阅读(30) | 评论 (0)编辑 收藏

    2009年11月22日 #

    急事,慢慢的说;大事,清楚的说;小事,幽默的说;没把握的事,谨慎的说; 没发生的事,不要胡说; 做不到的事,别乱说; 伤害人的事,不能说; 讨厌的事,对事不对人的说; 开心的事,看场合说; 伤心的事,不要见人就说; 别人的事,小心的说; 自己的事,听听自己的心怎么说; 现在的事,做了再说。
    posted @ 2009-11-22 18:39 王生生 阅读(36) | 评论 (0)编辑 收藏

    2009年11月19日 #

    1 echo 和 @
    回显命令
    @                        #关闭单行回显
    echo off                 #从下一行开始关闭回显
    @echo off                #从本行开始关闭回显。一般批处理第一行都是这个
    echo on                  #从下一行开始打开回显
    echo                     #显示当前是 echo off 状态还是 echo on 状态
    echo.                    #输出一个”回车换行”,空白行
                                #(同echo, echo; echo+ echo[ echo] echo/ echo)


    2 errorlevel
    echo %errorlevel%
    每个命令运行结束,可以用这个命令行格式查看返回码
    默认值为0,一般命令执行出错会设 errorlevel 为1


    3 dir
    显示文件夹内容
    dir                     #显示当前目录中的文件和子目录
    dir /a                  #显示当前目录中的文件和子目录,包括隐藏文件和系统文件
    dir c: /a:d             #显示 C 盘当前目录中的目录
    dir c: /a:-d            #显示 C 盘根目录中的文件
    dir c: /b/p            #/b只显示文件名,/p分页显示
    dir *.exe /s            #显示当前目录和子目录里所有的.exe文件


    4 cd
    切换目录
    cd                     #进入根目录
    cd                      #显示当前目录
    cd /d d:sdk            #可以同时更改盘符和目录


    5 md
    创建目录
    md d:abc             #如果 d:a 不存在,将会自动创建中级目录
    #如果命令扩展名被停用,则需要键入 mkdir abc。

    6 rd
    删除目录
    rd abc                  #删除当前目录里的 abc 子目录,要求为空目录
    rd /s/q d:temp         #删除 d:temp 文件夹及其子文件夹和文件,/q安静模式


    7 del
    删除文件
    del d:test.txt         #删除指定文件,不能是隐藏、系统、只读文件
    del /q/a/f d:temp*.*
    删除 d:temp 文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录
    del /q/a/f/s d:temp*.*
    删除 d:temp 及子文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录


    8 ren
    重命名命令
    ren d:temp tmp         #支持对文件夹的重命名

    9 cls
    清屏

    10 type
    显示文件内容
    type c:boot.ini        #显示指定文件的内容,程序文件一般会显示乱码
    type *.txt              #显示当前目录里所有.txt文件的内容


    11 copy
    拷贝文件
    copy c:test.txt d:test.bak
    复制 c:test.txt 文件到 d: ,并重命名为 test.bak
    copy con test.txt
    从屏幕上等待输入,按 Ctrl+Z 结束输入,输入内容存为test.txt文件
    con代表屏幕,prn代表打印机,nul代表空设备
    copy 1.txt + 2.txt 3.txt
    合并 1.txt 和 2.txt 的内容,保存为 3.txt 文件
    如果不指定 3.txt ,则保存到 1.txt
    copy test.txt +
    复制文件到自己,实际上是修改了文件日期


    12 title
    设置cmd窗口的标题
    title 新标题            #可以看到cmd窗口的标题栏变了


    13 ver
    显示系统版本

    14 label 和 vol
    设置卷标
    vol                     #显示卷标
    label                   #显示卷标,同时提示输入新卷标
    label c:system          #设置C盘的卷标为 system

    15 pause
    暂停命令

    16 rem 和 ::
    注释命令
    注释行不执行操作

    17 date 和 time
    日期和时间
    date              #显示当前日期,并提示输入新日期,按"回车"略过输入
    date/t            #只显示当前日期,不提示输入新日期
    time              #显示当前时间,并提示输入新时间,按"回车"略过输入
    time/t            #只显示当前时间,不提示输入新时间


    18 goto 和 :
    跳转命令
    :label            #行首为:表示该行是标签行,标签行不执行操作
    goto label        #跳转到指定的标签那一行


    19 find (外部命令)
    查找命令
    find "abc" c:test.txt
    在 c:test.txt 文件里查找含 abc 字符串的行
    如果找不到,将设 errorlevel 返回码为1
    find /i “abc” c:test.txt
    查找含 abc 的行,忽略大小写
    find /c "abc" c:test.txt
    显示含 abc 的行的行数


    20 more (外部命令)
    逐屏显示
    more c:test.txt        #逐屏显示 c:test.txt 的文件内容


    21 tree
    显示目录结构
    tree d:                #显示D盘的文件目录结构


    22 &
    顺序执行多条命令,而不管命令是否执行成功

    23 && 和 ||
    &&顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令
    | | 顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令

    find "ok" c:test.txt && echo 成功
    如果找到了"ok"字样,就显示"成功",找不到就不显示

    find "ok" c:test.txt || echo 不成功
    如果找不到"ok"字样,就显示"不成功",找到了就不显示

    24 |
    管道命令
    dir *.* /s/a | find /c ".exe"
    管道命令表示先执行 dir 命令,对其输出的结果执行后面的 find 命令
    该命令行结果:输出当前文件夹及所有子文件夹里的.exe文件的个数
    type c:test.txt|more
    这个和 more c:test.txt 的效果是一样的


    25 > 和 >> 和 ^
    输出重定向命令
    > 清除文件中原有的内容后再写入
    >> 追加内容到文件末尾,而不会清除原有的内容
    主要将本来显示在屏幕上的内容输出到指定文件中
    指定文件如果不存在,则自动生成该文件
    type c:test.txt >prn
    屏幕上不显示文件内容,转向输出到打印机
    echo hello world>con
    在屏幕上显示hello world,实际上所有输出都是默认 >con 的
    copy c:test.txt f: >nul
    拷贝文件,并且不显示"文件复制成功"的提示信息,但如果f盘不存在,还是会显示出错信息
    copy c:test.txt f: >nul 2>nul
    不显示”文件复制成功”的提示信息,并且f盘不存在的话,也不显示错误提示信息
    ^的作用是把命令符号转意成文本符号,它也可以转意自己,如:
    echo ^^W ^> ^W>c:test.txt
    生成的文件内容为 ^W > W
    ^ 和 > 是控制命令,要把它们输出到文件,必须在前面加个 ^ 符号
    set /p=^|
    |是管道命令,要显示|,就要加^

    26 '' 和 ""
    单引号的作用是,将多个命令组成的复合语句当成一条语句
    双引号的表示其内部内容为文本符号,它也可以连接两个或多个以空格间隔的文本符号
    for /f "tokens=15" %%i in ('ipconfig ^| find /i "ip address"') do set ip=%%i
    ipconfig为语句一,find /i "ip address"为语句二,用单引号合为一条语句

    IF /I "%c%"=="1" ECHO %c%
    set p="I Love You!!"
    find if set

    27 <
    从文件中获得输入信息,而不是从屏幕上
    一般用于 date time label 等需要等待输入的命令
    @echo off
    echo 2005-05-01>temp.txt
    date <temp.txt
    del temp.txt
    这样就可以不等待输入直接修改当前日期

    28 %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*
    命令行传递给批处理的参数
    %0 批处理文件本身
    %1 第一个参数
    %9 第九个参数
    %* 从第一个参数开始的所有参数

    批参数(%n)的替代已被增强。您可以使用以下语法:

            %~1             - 删除引号("),扩充 %1
            %~f1            - 将 %1 扩充到一个完全合格的路径名
            %~d1            - 仅将 %1 扩充到一个驱动器号
            %~p1            - 仅将 %1 扩充到一个路径
            %~n1            - 仅将 %1 扩充到一个文件名
            %~x1            - 仅将 %1 扩充到一个文件扩展名
            %~s1            - 扩充的路径指含有短名
            %~a1            - 将 %1 扩充到文件属性
            %~t1            - 将 %1 扩充到文件的日期/时间
            %~z1            - 将 %1 扩充到文件的大小
            %~$PATH : 1 - 查找列在 PATH 环境变量的目录,并将 %1
                          扩充到找到的第一个完全合格的名称。如果环境
                          变量名未被定义,或者没有找到文件,此组合键会
                          扩充到空字符串

    可以组合修定符来取得多重结果:

           %~dp1           - 只将 %1 扩展到驱动器号和路径
           %~nx1           - 只将 %1 扩展到文件名和扩展名
           %~dp$PATH:1 - 在列在 PATH 环境变量中的目录里查找 %1,
                          并扩展到找到的第一个文件的驱动器号和路径。
           %~ftza1         - 将 %1 扩展到类似 DIR 的输出行。
    可以参照 call/? 或 for/? 看出每个参数的含意
    echo load "%%1" "%%2">c:test.txt
    生成的文件内容为 load "%1" "%2"
    批处理文件里,用这个格式把命令行参数输出到文件

    29 if
    判断命令
    if "%1"=="/a" echo 第一个参数是/a
    if /i "%1" equ "/a" echo 第一个参数是/a
    /i 表示不区分大小写,equ 和 == 是一样的,其它运算符参见:
        EQU - 等于
        NEQ - 不等于
        LSS - 小于
        LEQ - 小于或等于
        GTR - 大于
        GEQ - 大于或等于
    if exist c:test.bat echo 存在c:test.bat文件
    if not exist c:windows (
            echo 不存在c:windows文件夹
            )
    if exist c:test.bat (
            echo 存在c:test.bat
            ) else (
            echo 不存在c:test.bat
            )

    30 setlocal 和 endlocal
    设置”命令扩展名”和”延缓环境变量扩充”
    SETLOCAL ENABLEEXTENSIONS                #启用"命令扩展名"
    SETLOCAL DISABLEEXTENSIONS               #停用"命令扩展名"
    SETLOCAL ENABLEDELAYEDEXPANSION          #启用"延缓环境变量扩充"
    SETLOCAL DISABLEDELAYEDEXPANSION         #停用"延缓环境变量扩充"
    ENDLOCAL                                 #恢复到使用SETLOCAL语句以前的状态
    “命令扩展名”默认为启用
    “延缓环境变量扩充”默认为停用
    批处理结束系统会自动恢复默认值
    可以修改注册表以禁用"命令扩展名",详见 cmd /? 。所以用到"命令扩展名"的程
    序,建议在开头和结尾加上 SETLOCAL ENABLEEXTENSIONS 和 ENDLOCAL 语句,以确
    保程序能在其它系统上正确运行
    "延缓环境变量扩充"主要用于 if 和 for 的符合语句,在 set 的说明里有其实用例程

    31 set
    设置变量
    引用变量可在变量名前后加 % ,即 %变量名%
    set                        #显示目前所有可用的变量,包括系统变量和自定义的变量
    echo %SystemDrive%         #显示系统盘盘符。系统变量可以直接引用
    set p                      #显示所有以p开头的变量,要是一个也没有就设errorlevel=1
    set p=aa1bb1aa2bb2         #设置变量p,并赋值为 = 后面的字符串,即aa1bb1aa2bb2
    echo %p%                   #显示变量p代表的字符串,即aa1bb1aa2bb2
    echo %p:~6%                #显示变量p中第6个字符以后的所有字符,即aa2bb2
    echo %p:~6,3%              #显示第6个字符以后的3个字符,即aa2
    echo %p:~0,3%              #显示前3个字符,即aa1
    echo %p:~-2%               #显示最后面的2个字符,即b2
    echo %p:~0,-2%             #显示除了最后2个字符以外的其它字符,即aa1bb1aa2b
    echo %p:aa=c%              #用c替换变量p中所有的aa,即显示c1bb1c2bb2
    echo %p:aa=%               #将变量p中的所有aa字符串置换为空,即显示1bb12bb2
    echo %p:*bb=c%             #第一个bb及其之前的所有字符被替换为c,即显示c1aa2bb2
    set p=%p:*bb=c%            #设置变量p,赋值为 %p:*bb=c% ,即c1aa2bb2
    set /a p=39                #设置p为数值型变量,值为39
    set /a p=39/10             #支持运算符,有小数时用去尾法,39/10=3.9,去尾得3,p=3
    set /a p=p/10              #用 /a 参数时,在 = 后面的变量可以不加%直接引用
    set /a p=”1&0″             #”与”运算,要加引号。其它支持的运算符参见set/?
    set p=                     #取消p变量
    set /p p=请输入
    屏幕上显示”请输入”,并会将输入的字符串赋值给变量p
    注意这条可以用来取代 choice 命令
    注意变量在 if 和 for 的复合语句里是一次性全部替换的,如
    @echo off
    set p=aaa
    if %p%==aaa (
            echo %p%
            set p=bbb
            echo %p%
            )
    结果将显示
    aaa
    aaa
    因为在读取 if 语句时已经将所有 %p% 替换为aaa
    这里的"替换",在 /? 帮助里就是指"扩充"、"环境变量扩充"
    可以启用”延缓环境变量扩充”,用 ! 来引用变量,即 !变量名!
    @echo off
    SETLOCAL ENABLEDELAYEDEXPANSION
    set p=aaa
    if %p%==aaa (
            echo %p%
            set p=bbb
            echo !p!
            )
    ENDLOCAL
    结果将显示
    aaa
    bbb
    还有几个动态变量,运行 set 看不到
    %CD%                      #代表当前目录的字符串
    %DATE%                    #当前日期
    %TIME%                    #当前时间
    %RANDOM%                  #随机整数,介于0~32767
    %ERRORLEVEL%              #当前 ERRORLEVEL 值
    %CMDEXTVERSION%           #当前命令处理器扩展名版本号
    %CMDCMDLINE%              #调用命令处理器的原始命令行
    可以用echo命令查看每个变量值,如 echo %time%
    注意 %time% 精确到毫秒,在批处理需要延时处理时可以用到

    32 start
    批处理中调用外部程序的命令,否则等外部程序完成后才继续执行剩下的指令

    33 call
    批处理中调用另外一个批处理的命令,否则剩下的批处理指令将不会被执行
    有时有的应用程序用start调用出错的,也可以call调用

    34 choice (外部命令)
    选择命令
    让用户输入一个字符,从而选择运行不同的命令,返回码errorlevel为1234……
    win98里是choice.com
    win2000pro里没有,可以从win98里拷过来
    win2003里是choice.exe
    choice /N /C y /T 5 /D y>nul
    延时5秒


    35 assoc 和 ftype
    文件关联
    assoc 设置'文件扩展名'关联,关联到'文件类型'
    ftype 设置'文件类型'关联,关联到'执行程序和参数'
    当你双击一个.txt文件时,windows并不是根据.txt直接判断用 notepad.exe 打开
    而是先判断.txt属于 txtfile '文件类型'
    再调用 txtfile 关联的命令行 txtfile=%SystemRoot%system32NOTEPAD.EXE %1
    可以在"文件夹选项"→"文件类型"里修改这2种关联
    assoc               #显示所有'文件扩展名'关联
    assoc .txt          #显示.txt代表的'文件类型',结果显示 .txt=txtfile
    assoc .doc          #显示.doc代表的'文件类型',结果显示 .doc=Word.Document.8
    assoc .exe          #显示.exe代表的'文件类型',结果显示 .exe=exefile
    ftype               #显示所有'文件类型'关联
    ftype exefile       #显示exefile类型关联的命令行,结果显示 exefile="%1" %*
    assoc .txt=Word.Document.8
    设置.txt为word类型的文档,可以看到.txt文件的图标都变了
    assoc .txt=txtfile
    恢复.txt的正确关联
    ftype exefile="%1" %*
    恢复 exefile 的正确关联
    如果该关联已经被破坏,可以运行 command.com ,再输入这条命令

    36 pushd 和 popd
    切换当前目录
    @echo off
    c: & cd & md mp3           #在 C: 建立 mp3 文件夹
    md d:mp4                   #在 D: 建立 mp4 文件夹
    cd /d d:mp4                #更改当前目录为 d:mp4
    pushd c:mp3                #保存当前目录,并切换当前目录为 c:mp3
    popd                        #恢复当前目录为刚才保存的 d:mp4

    37 for
    循环命令
    这个比较复杂,请对照 for/? 来看
    for %%i in (c: d: e: f:) do echo %%i
    依次调用小括号里的每个字符串,执行 do 后面的命令
    注意%%i,在批处理中 for 语句调用参数用2个%
    默认的字符串分隔符是"空格键","Tab键","回车键"
    for %%i in (*.txt) do find "abc" %%i
    对当前目录里所有的txt文件执行 find 命令
    for /r . %%i in (*.txt) do find "abc" %%i
    在当前目录和子目录里所有的.txt文件中搜索包含 abc 字符串的行
    for /r . %%i in (.) do echo %%~pni
    显示当前目录名和所有子目录名,包括路径,不包括盘符
    for /r d:mp3 %%i in (*.mp3) do echo %%i>>d:mp3.txt
    把 d:mp3 及其子目录里的mp3文件的文件名都存到 d:mp3.txt 里去
    for /l %%i in (2,1,8) do echo %%i
    生成2345678的一串数字,2是数字序列的开头,8是结尾,1表示每次加1
    for /f %%i in ('set') do echo %%i
    对 set 命令的输出结果循环调用,每行一个
    for /f "eol=P" %%i in ('set') do echo %%i
    取 set 命令的输出结果,忽略以 P 开头的那几行
    for /f %%i in (d:mp3.txt) do echo %%i
    显示 d:mp3.txt 里的每个文件名,每行一个,不支持带空格的名称
    for /f "delims=" %%i in (d:mp3.txt) do echo %%i
    显示 d:mp3.txt 里的每个文件名,每行一个,支持带空格的名称
    for /f "skip=5 tokens=4" %%a in ('dir') do echo %%a
    对 dir 命令的结果,跳过前面5行,余下的每行取第4列
    每列之间的分隔符为默认的"空格"
    可以注意到 dir 命令输出的前5行是没有文件名的
    for /f "tokens=1,2,3 delims=- " %%a in ('date /t') do (
            echo %%a
            echo %%b
            echo %%c
            )
    对 date /t 的输出结果,每行取1、2、3列
    第一列对应指定的 %%a ,后面的 %%b 和 %%c 是派生出来的,对应其它列
    分隔符指定为 - 和"空格",注意 delims=- 后面有个"空格"
    其中 tokens=1,2,3 若用 tokens=1-3 替换,效果是一样的
    for /f "tokens=2* delims=- " %%a in ('date /t') do echo %%b
    取第2列给 %%a ,其后的列都给 %%b


    38 subst (外部命令)
    映射磁盘。
    subst z: serverd         #这样输入z:就可以访问serverd了
    subst z: /d                 #取消该映射
    subst                       #显示目前所有的映时

    39      xcopy (外部命令)
    文件拷贝
    xcopy d:mp3 e:mp3 /s/e/i/y
    复制 d:mp3 文件夹、所有子文件夹和文件到 e: ,覆盖已有文件
    加 /i 表示如果 e: 没有 mp3 文件夹就自动新建一个,否则会有询问


    转自http://blog.csdn.net/mydriverc/archive/2008/01/16/2047152.aspx

     

    posted @ 2009-11-19 09:02 王生生 阅读(18) | 评论 (0)编辑 收藏

    2009年11月6日 #

    人生成功第1课

    做一个终生学习的人

    离开学校并不意味着学习就结束了。

    学习可以成为一种生活方式,帮助你发挥最大的潜能。

    我们从未停止学习,总会有新的,有趣的东西等待我们去发现。

    学习新的技能可能让人感到有一点恐惧,但每当我们在个人学习上停滞不前时,我们都需要去学习新的东西。

    积极地寻求支援和建议,突破停滞期。

    参加一些培训,进修,夜校-任何新的兴趣都将会有助于发展你的优势。

    多看,多听,让你的头脑保持活跃。活到老,学到老。

    人生成功第2课

    令自己感到沮丧的秘诀就是用空闲时间去烦恼自己是否快乐。所以不要费事去想它!摩拳擦掌干起来吧。你将热血沸腾,你会头脑清醒。很快,在你身体中的这种高涨的积极人生观将把烦恼从你的头脑中赶出去。

    行动起来,忙碌起来。这是世界上最便宜的一种药,也是最好的一种。

    人生成功第3课

    在困境中寻找成功的希望 

    逆境是一所最好的学校。每一次失败,每一次打击,每一次损失,都蕴育着成功的萌芽,都教会我在下一次有更出色的表现。我再也不会逃避现实,也不会拒绝从以往的错误中获取经验,我不再因此而促成自己的失败。因为我知道,宝玉不经磨砺就不能发光,没有,我也不能完善自我。

    现在我知道,灵魂倍受煎熬的时刻,也正是生命中最多选择与机会的时刻。任何事情的成败取决于我在寻求帮助时是抬起头还是低下头。无论何时,当我被可怕的 失败击倒,在最初的阵痛过去之后,我都要想方设法将苦难变成好事。伟大的机遇就在这一刻闪现-这苦涩的根必将迎来满园芬芳!

    我将一直在困境中寻找成功的希望。 

    人生成功第4课

    没有人可以使你感到自卑

    我选择自我感觉良好,这样我能更加开放地学习。如果人们给我负面的回应或是批评我做的事情,我不会认为他们所说的就表明我是一个“差劲的”人。我坚信自尊由我掌控,这让我毫无戒心地去听取别人的反馈,想看看是否有我可以学习的东西。

    我们每天都有两种选择。我们可以感到自己很棒,也可以感到自己很差劲。难道有人会选择后者吗?

    人生成功第5课

    紧紧抓住梦想

    我们每个人都有梦想。我们每个人都希望能发自内心地相信自已有一种特殊的天赋,相信自己能发挥重要的作用,相信自己能以一种特殊的方式感动他人,相信自己能够把世界变得更加美好。

    在一生中,我们都曾经对自己渴望并追求的生活品质抱有憧憬。然而,对我们大多数人来说,这些憧憬在日常生活的成规和挫败中已经变得如此渺茫,以到于我们 甚至不再努力去实现它们。对太多人来说,梦想已经远离,随之远离的还有塑造我们命运的意愿。很多人已经推动了坚定的信念,而正是坚定的信念为胜利者创造了 优势。

    我们所要做的就是重拴梦想,并实现梦想,让我们每个人都记住,并去运用深藏在自己身上的无限潜能。

    人生成功第6课

    毅力无法替代

    世界上没有任何东西可以替代毅力。才干不可以,无所作为的能人十分普遍;天分不可以,碌碌无为的天才尽人皆知;教育不可以,受过良好教育的没落者更是随处可见。只要有毅力和决心,就是无所不能的。

    毅力并不总是意味着永远坚持做同一件事。它意味着无论你做任何事情,你都要立刻全心投入,竭尽全力;它意味着先做艰苦的工作,再去期待随之而来的满足和 回报。它意味着开心地工作,渴望更多的知识和进步。它意味着多打几个电话,多夏装几里路,多除草,早起床,意味着总是寻求更好的方式去做你在做的事情。毅 力就是经历考验和过失的成功。

    人生成功第7课

    驻足片刻闻花香

    在现代生活的忙忙碌碌中,人们很少会停下来欣赏自然的美。

    问问自己,你有多少次倾听过鸟儿的歌唱。你最近一次抬头仰望闪耀的星空又是在什么时候?

    时光飞逝,人生苦短。不要忘记驻足闻闻花香。我们在急于谋生的过程中,往往忽视了我们生活的品质。多少次,你听见人们为这为那说“我忙死了。”多可惜啊!有一天,当他们真的找到时间能够驻足片刻闻花香时,可能已经太迟了。

    人生成功第8课

    加入到微笑者和赞美者的行列来

    当你对别人,别人也会对你报以,你自然会感觉很棒。即使他有对你报以,你也会感觉很棒,因为你认识到世界上最贫穷的人就是从不微笑的人,当你对那个人微笑,你立刻变得更加富有。

    赞美也是这个道理。当你真诚地毛病抑或恭维一个人时,他将立刻受益,更喜欢自己。当你让别人感觉更好时,你自己也会感觉更好。

    人生成功第9课

    让自己快乐

    调查表明,我们当中70%的人在生活中时间有临床性的抑郁现象。

    如今我们有这么多的机遇,为什么我们还这么不快乐呢?

    人们尝试各种东西:金钱,**,事业,婚姻,离婚,酒精,摇滚甚至毒品,但我们大多数人只是想要得到一样东西-快乐。

    快乐是人的一种自然的身心状态;我们只要去相信快乐,让自己感受快乐。

    要宣称:我应当得到快乐。说出来,唱出来,喊出来。

    优先考虑快乐,让快乐成为你最重要的事情。

    对你所拥有的一切抱以感激之情吧。

    人生成功第10课

    我拥有无与伦比的想象力   

    现在我将通过这种神奇的力量得到我想要的。如果我害怕发表演讲,我就想象自己在公众场合无所畏惧,充满信心;如果我在病魔的煎熬,我就想象我以前健康的样子;如果我感到贫穷,我就想象我将要富有。

    现在我明白了:人类惟一的限制就是想象力。我之所以没有成功,原因就在于我不知道如何使用我的想象力。现在,我精通这个技巧,我将从中受益。最大的回报将是成功和愈加快乐。(摘自网络)
    posted @ 2009-11-06 13:46 王生生 阅读(13) | 评论 (0)编辑 收藏

        命令行下具体用法如下:  mysqldump -u用戶名 -p密码 -d 數據库名 表名 脚本名;

        1、导出數據库為dbname的表结构(其中用戶名為root,密码為dbpasswd,生成的脚本名為db.sql)
        mysqldump -uroot -pdbpasswd -d dbname >db.sql;

        2、导出數據库為dbname某张表(test)结构
        mysqldump -uroot -pdbpasswd -d dbname test>db.sql;

        3、导出數據库為dbname所有表结构及表數據(不加-d)
        mysqldump -uroot -pdbpasswd  dbname >db.sql;

        4、导出數據库為dbname某张表(test)结构及表數據(不加-d)
        mysqldump -uroot -pdbpasswd dbname test>db.sql;

       

    posted @ 2009-11-06 10:14 王生生 阅读(518) | 评论 (0)编辑 收藏

    仅列出标题  下一页