为了测试系统中的一个小功能,我很开心的修改了系统时间
然后,我发现,无论我怎么修改JSP,在Tomcat中浏览就是没有任何效果,整个一大悲剧啊
于是,我纠结了整整一下午,最后,想起来修改了系统时间
文件修改时间比修改前的还要早,当然不会去刷新啦,唉,悲剧。
将系统时间调好,删掉Tomcat下编译好的JSP目录
系统就正常啦
面壁去了~~
Learn and share.
为了测试系统中的一个小功能,我很开心的修改了系统时间
然后,我发现,无论我怎么修改JSP,在Tomcat中浏览就是没有任何效果,整个一大悲剧啊
于是,我纠结了整整一下午,最后,想起来修改了系统时间
文件修改时间比修改前的还要早,当然不会去刷新啦,唉,悲剧。
将系统时间调好,删掉Tomcat下编译好的JSP目录
系统就正常啦
面壁去了~~
公司在一家医院做实施,将Tomcat,存储,Oracle都做好了Cluster
但好景不长:
切换几次后,总会有一台服务器连不上,ping都ping不通,只好再手工切回去
后来发现,切换后把网关给丢掉了
在cmd下ipconfig -all,网关为空,但在连接属性的TCP/IP设置里,网关仍健在
唉,在google未果的情况下,只好做了件很无奈的事情,
写了个脚本,去设置网关
Rem Hansen set myinterface=本地连接 set mygateway=192.168.100.1 netsh interface ip set address name="%myinterface%" gateway="%mygateway%" gwmetric=1 pause
居然还算管用,将就一下吧,唉
1.为.net控件增加StrongName
生成签名密钥
sn –k Target.snk
在工程属性中指定snk文件
或在程序中增加
[assembly:AssemblyKeyFile(" Target.snk ")]
重新编译即可
2.注册控件
regasm Target.dll
3.生成Target.tlb
tlbexp Target.dll
4.将Target.dll放到全局程序集中
gacuti.exe /i Target.dll
5.在VB6中引用Target.tlb即可
dll
regsvr32 target.dll
ocx
regsvr32 target.ocx
.net的dll呢
regasm target.dll
昨天试着用MinGW编译FFMPEG,网上资料是很多,但我遇到了一个很让人郁闷的问题:
只要一./configure …
就显示gcc测试失败
纠结了一整天,最后发现居然是小红伞把测试gcc时生成的exe当成病毒处理掉了,晕
关闭小红伞,一切太平了
希望大家不要遇到这种问题
测试用例:
源码a.c
int main(){return 0;}
编译
gcc -o a.exe a.c
小红伞会报a.exe为病毒
1.Tasklist
作用: 显示当前运行在本地或远程计算机上的应用程序、服务以及进程 ID (PID) 的列表 语法:TASKLIST [/S system [/U username [/P [password]]]] [/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH] 参数列表: /S system 指定连接到的远程系统。 /U [domain/]user 指定应该在哪个用户上下文执行这个命令。 /P [password] 为提供的用户上下文指定密码。如果忽略,提示输入。 /M [module] 列出所有其中符合指定模式名的DLL模块的所有任务。如果没有指定模块名,则显示每个任务加载的所有模块 /SVC 显示每个进程中的服务。 /V 指定要显示详述信息。 /FO format 指定输出格式。有效值: "TABLE"、"LIST"、"CSV"。 /NH 指定栏标头不应该在输出中显示。只对 "TABLE" 和 "CSV" 格式有效。 /? 显示帮助/用法。 列出了系统的进程,包括PID,内存使用大小. 加上了参数/svc ,这样就列出了每个进程所调用的服务
2.Taskkill
作用:结束一个或多个任务或进程。可以根据进程 ID 或图像名来结束进程。 语法:TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter] [/PID processid | /IM imagename] } [/F] [/T] 参数列表: /S system 指定要连接到的远程系统。 /U [domain/]user 指定应该在哪个用户上下文执行这个命令。 /P [password] 为提供的用户上下文指定密码。如果忽略,提示输入。 /F 指定要强行终止进程。 /PID process id 指定要终止的进程的PID。 /IM image name 指定要终止的进程的图像名。通配符 '*'可用来指定所有图像名。 /T 终止指定的进程和任何由此启动的子进程。 /? 显示帮助/用法。
3.Ntsd
第一步:打开进程管理器窗口,找到进程PID 第二步:输入ntsd -c q -p PID回车即可终止该进程。 只有System、SMSS.EXE和CSRSS.EXE进程不能被该命令杀死。前两个是纯内核态的,最后那个是Win32子系统,ntsd本身需要它。
4.ping
用来检测一帧数据从当前主机传送到目的主机所需要的时间 ping命令的格式如下: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-scount] [[-j host-list] | [-k host-list]] [-w timeout] destination-list 其中的参数说明如下: -t 使当前主机不断地向目的主机发送数据,直到使用Ctrl-C中断; -a 以IP地址格式(不是主机名形式)显示网络地址; -n count 指定要做多少次ping,其中count为正整数值; -l size 发送的数据包的大小; -f 设置回声分组不会由中间网关分组; -i TTL 指定ping分组时限域,TTL是指在停止到达的地址前应经过多少个网关; -v TOS 服务的类型; -r count 指出要记录路由的轮数(去和回); -s count 指定当使用-r参数时,用于每一轮路由的时间; -j host-list 指定希望分组的路由; -k host-list 与-j参数基本相同,只是不能使用额外的主机; -w timeout 指定超时时间间隔(单位为毫秒),缺省为1000; 一般我们使用得较多的参数为-t、-n、-w。
5.ipconfig
用来显示主机内IP协议的配置信息。 ipconfig的命令格式如下: ipconfig [/? | /all | /release [adapter] | /renew [adapter]] 其中的参数说明如下: /? 显示ipconfig的格式和参数的英文说明; /all 显示所有的配置信息; /release 为指定的适配器(或全部适配器)释放IP地址(只适用于DHCP); /renew 为指定的适配器(或全部适配器)更新IP地址(只适用于DHCP)。 使用不带参数的ipconfig命令可以得到以下信息:IP地址、子网掩码、默认网关。 而使用ipconfig /all,则可以得到更多的信息:主机名、DNS服务器、节点类型、网络适配器的物理地址、主机的IP地址、子网掩码以及默认网关等。
6.tracert
判定数据包到达目的主机所经过的路径、显示数据包经过的中继节点清单和到达时间。 tracert命令的格式如下: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name 其中的 参数说明如下: -d 不解析主机名; -h maximum_hops 指定搜索到目的地址的最大轮数; -j host-list 沿着主机列表释放源路由; -w timeout 指定超时时间间隔(单位毫秒)。
7.netstat
显示当前活动的网络连接的详细信息,如协议类型、当前主机与远端相连主机的IP地址以及它们之间的连接状态等。 netstat的命令格式如下: netstat [-a] [-e] [-n] [-s] [-p proto] [-r] [interval] 其中的参数说明如下: -a 显示所有主机的端口号; -e 显示以太网统计信息; -n 以数字表格形式显示地址和端口; -p proto 显示特定的协议的具体使用信息; -r 显示本机路由表的内容; -s 显示每个协议的使用状态(包括TCP、UDP、IP); interval 重新显示所选的状态,每次显示之间的间隔数(单位秒),按Ctrl+C中止重新显示。
8、arp
arp的命令格式如下: arp -s inet_addr eth_addr [if_addr] arp -d inet_addr [if_addr] arp -a [inet_addr] [-N if_addr] 参数说明如下: inet_addr IP地址; eth_addr 以太网卡地址; -a 显示某个IP地址的网卡地址(不加IP地址,显示所有已激活的IP地址的网卡地址)(使用该参数前应该先ping通某一个IP地址); -d 删除指定IP地址的主机; -s 增加主机和与IP地址相对应的以太网卡地址。
9.Fixmbr
重新构造主引导扇区。只修改主引导扇区记录,对其他扇区不进行写操作。 其基本命令格式如: Fixmbr[Drive][/A][/D][/P][/Z][/H] /A:Active DOS partition(激活基本DOS分区) /D:Display MBR(显示主引导记录内容) /P:Display partition(显示DOS分区的结构) /Z:Zero MBR (将主引导记录区清零) /H:Help (帮助信息) 如果直接键入FixMbr后按回车键,缺省的情况下将执行检查主引导区结构的操作。如果发现系统不正常,将出现是否进行修复的提示。 回答Yes后将搜索分区,当搜索到相应的分区以后,系统会提示是否修改主引导区,回答YES则会开始修复。如果搜索的结果不对,可使 用/Z开关符,重新启动系统将主引导区恢复到原来的状态。
10.Diskpart
利用它可实现对硬盘的分区管理,包括创建分区、删除分区、合并(扩展)分区。 Active:将一个分区标为 Aactive,让它成为系统盘。 Delete:删除分区。 Exit:退出Diskpart状态。 Extend:将分区的容量扩大。 Help:显示帮助信息。 List:列出磁盘或分区。 Select:选择要操作的对象,如一个磁盘或分区等。
项目实施后,为了以防万一,决定每天夜里备份数据库
虽然Oracle本身就有自动备份的功能,但我仍然不放心于是用bat和windows的任务计划进行了备份
REM HANSEN 2011-03-31 REM 用于备份Oracle数据库 color 2 set FilePath=S:/Backup/ set UserName=user set PassWord=pwd set ServiceName=orcl if not exist "%FilePath%" (exit) set FileName=%DATE:~0,10%-%TIME:~0,8% set FileName=%FileName::=-% set FileName=%FileName: =0% set DBFile=%FilePath%%FileName%.dmp set LogFile=%FilePath%%FileName%.log echo ORACLE数据库备份开始 echo %DATE:~0,10% %TIME:~0,8% echo ORACLE数据库备份数据保存到%DBFile% echo ORACLE数据库备份日志保存到%LogFile% exp %UserName%/%PassWord%@%ServiceName% file=%DBFile% log=%LogFile% compress=y direct=n rows=y owner='%UserName%' consistent=n constraints=y grants=y indexes=y triggers=y
另外又加了个定期删除的bat,但这个有些问题的,就是只考虑了备份文件的创建时间,并没有考虑到要保留几个备份
换句话说,当连续7天备份失败后,就没有备份了,所以请修改一下再用
Rem Delete Files Older Than One Week set FilePath=E:/Backup/ forfiles /p %FilePath% /s /m *.dmp /d -7 /c "cmd /c del @file forfiles /p %FilePath% /s /m *.log /d -7 /c "cmd /c del @file
0.基本操作
0.1多行复制
0.1.1、复制方法一
A、将光标移动到要复制的起始行
B、如果复制1行,则按下yy,如果是复制n行,则按下nyy
C、光标移动到粘贴地点,按下p
0.1.2、复制方法二
A、ESC,:进入命名模式
B、start_line_no,end_lin_no co target_line_no
0.1.3、复制方法三(方法二+标签)
A、将光标移动到要复制的起始行,输入ma
B、将光标移动到要复制的结束行,输入mb
C、将光标移动到要复制的目标行,输入mc
D、ESC,:进入命名模式
E、’a,’b co ‘c
0.1.4、剪切方法一
A、将光标移动到要剪切的起始行
B、如果剪切1行,则按下dd,如果是剪切n行,则按下ndd
C、光标移动到粘贴地点,按下p
0.1.5、剪切方法二
A、ESC,:进入命名模式
B、start_line_no,end_lin_no m target_line_no
0.1.6、剪切方法三(方法二+标签)
A、将光标移动到要剪切的起始行,输入ma
B、将光标移动到要剪切的结束行,输入mb
C、将光标移动到要剪切的目标行,输入mc
D、ESC,:进入命名模式
E、’a,’b m ‘c
1.正则表达式
1.1.行首、行尾及空格
1.1.1 符号具体含义
^表示行首 $表示行尾 \s表示空格
1.1.2 应用举例
在全局范围内删除开始空格 :%s/^\s\+/ 删除末尾空格 :%s/\s\+$/ 删除空行 :g/^$/d 删除空白行 :g/^\s\+$/d 删除-开始的行 :g/^-/d
2.Table与空格互转
2.1、空格转TAB
:set ts=8 :set expandtab :%retab!
2.2、TAB转空格
:set ts=8 :set noexpandtab :%retab!
3.删除重复行
3.1、方法一
先排序 :sort 然后删除的重复项的后面一项 :g/\%(^\1$\n\)\@<=\(.*\)$/d
3.2、方法二
先排序 :sort 然后删除重复项的前面一项 :g/^\(.*\)$\n\1$/d
3.3、方法三
先排序 :sort 然后将所有重复记录替换为第一条 :%s/^\(.*\)\(\n\1\)\+$/\1/
4.奇偶行
4.1、删除奇数行
%s/\(^.*$\)\n\(^.*$\)/\1
4.2、删除偶数行
%s/\(^.*$\)\n\(^.*$\)/\2
4.3、奇偶行合并,以tab分隔
%s/\(^.*$\)\n\(^.*$\)/\1\t\2
或
%s/\n\(.*\n\)/\t\1
5.生成行号
5.1、方法1
:r !seq 1 100
5.2、方法2
:let n=0 | g/^/s//\=n/|let n+=1
6、每行首字母大写
%s/^\([a-z]\)/\U\1/
7.将行调整为固定宽度
:s/\v(.{80})/\1\r/g
1.新建个bat文件
然后在里面写上:
attrib +h +s %1
然后把任意文件或文件夹拖放到上面,
就可以把其设成系统+隐藏属性了。
2.新建鼠标右键菜单
名称:用记事本打开
命令:notepad %1
这样就能随时用记事本打开文件了。
还有,不仅%1呢,%2,%3都可以的,
比如一次想把很多文件设成隐藏属性时,
一起拖拽到文件图标上就好了,自己试试吧。
attrib +h +s %1 attrib +h +s %2 attrib +h +s %3 attrib +h +s %4 attrib +h +s %5 attrib +h +s %6 attrib +h +s %7 attrib +h +s %8 attrib +h +s %9
在VC6 Debug环境下,要求填补一段代码,使输入与输出一致。
#Include <Stdio.h> void test() { int t; scanf("%d", &t); /* 在这里填写代码…… */ } int main() { int m; test(); printf("%d", m); }
方法一:
int* pt = &t; pt += 22; *pt = t
方法二:
#Include <windows.h> DWORD addrEbp; _asm { mov addrEbp,ebp; } DWORD *pm=(DWORD *)(addrEbp + 0x80-0x28 -4); *pm=t;
两种方法都是直接修改了内存,呵呵,还是蛮有意思的啦。