hgy命令行程序集

[ 2010-06-06 21:59 | 浏览次数: 2,318次 | 0条评论 ]

做与电脑相关的工作,做得久了,经常发现自己在不停地做着重复的工作,有时还有很多简单繁琐的东西要做,感觉就像一个机器重复不断的做着体力劳动。
网上说写脚本可以实现很多简单繁琐的工作,脚本就像可以按照自己的想法快速组装程序,完成任务,简化不必要的劳动。
linux就是基于这个理念,把脚本,命令行程序发展到了极致。(linux到处都是脚本)

可惜我目前是在windows平台,不懂vbs,只懂得些批处理(批处理语法少,很易懂)。
使用批处理确实发现可以避免一些枯燥的工作,且本人越来越喜欢打命令。
按win+R,打命令,按Enter,一气呵成,不用打开开始菜单,且速度贼快。
使用命令行基本上没有卡的感觉,删除文件,复制文件等,感觉很舒服,很快。
批处理虽好,但没有像linux那样有很多命令行程序帮忙,效果大打折扣。
为了增强效果,提高效率,我学着linux搞了一大把命令行程序来增强windows命令行。
下面一个个介绍。

程序 运行例 说明
编程工具
ccw.bat ccw a.cpp b.cpp 类似于cc编译器

需要安装VS

gcore.bat gcore msn.exe 生成msn的dmp文件,便于调式
initvs.bat initvs 这个是初始化vs的环境变量的批处理,所有基于vs的工具都会调用它。

这个不需要手动运行。

如果基于vs的工具运行不正常,那么可能这个批处理没有正确初始化vs环境变量,请自己编辑这个文件,直至正确。

注:这个是基于vs2003的,其他版本的vs需要手工编辑此文件。

lddw.bat lddw a.exe 类似于ldd,用于查看程序所依赖的dll

需要安装vs

ldw.bat Ldw a.obj b.obj 类似于ld,用于link程序

需要安装vs

nmw.bat Nmw. a.obj 类似于nm

用于查看obj文件的符号

需要安装vs

nmw2.bat nmw2 a.dll 用于查看dll的导出函数

需要安装vs

系统管理
cdx.bat Cdx D:\ 与cd相比可以直接跳转到其他盘
cp.bat cp a.dll b.dll

cp dir1 dir2

复制文件或目录
df.exe df 查看系统目前磁盘使用状况
findx.exe findx *.cpp -d D:\ 类似于linux的find

很强大,可以很容易的将一群文件的文件名写到文本文件。

比如

findx *.cpp -d D:\ >1.txt

就可以将D盘所有的的cpp文件名写到1.txt文件里。

也可以把某个目录里文件的组成结构全部写到文本文件里。

grep.bat ls|grep aa.txt 过滤文字
kill.bat kill msn.exe

kill 2160

杀进程,参数可以是进程名或pid
ln.exe Ln notepad.exe txt.exe

ln C:\Windows D:\win

链接文件或目录

这里链接目录比较有用,不用移动目录,只需要在另一处給这个目录做个链接,另一处就会出现这个目录。

ls.bat Ls 列出文件一览
machinfo.exe machinfo 查看电脑信息
mv.bat Mv a.dll b.dll

Mv adir bdir

移动文件或目录
ps.bat Ps 查看当前进程信息,

可以配合grep,

如:

Ps|grep msn

就可以直接定位到msn进程

pwd.bat pwd 打印当前目录
qsave.exe Qsave http://hello.com/ -o a.txt

Qsave http://hello.com -d C:\

下载http上的东西
reboot.exe Reboot 重启
replacestr.exe replacestr C:\1.csv -r “wo/rni” -r “ta/rni” -o C:\out.csv 替换文件中的指定字符串
rm.bat Rm a.exe

Rm adir

删除文件或目录
shutdownx.exe shutdownx 关机
su.exe su 切换到管理员
sudo.exe Sudo notepad 使用管理员运行notepad
whereis.exe Whereis notepad 寻找notepad在哪里

搜索位置是path变量

whoami.bat whoami 打印当前用户名
xargs.exe Findx *.tmp|xargs.exe rm {} 构造参数列表并运行命令。

这个可以和其他程序组合来达到强大的效果。

比如例子:找到所有tmp文件并且删除。

rm {}是xargs将要运行的命令行,每一个参数都会调用这个命令行,命令行中的{}会被替代成一个参数。

参数列表从findx *.tmp得来。

(其实这个是得益于管道符号|,这个符号表示前面的运行输出当作后面的命令行的输入,所以xargs.exe rm {}能够得到好多参数)

再举个例子:

我们做了一堆exe文件给上面打签名,做安装包,搞完后让我们测试能不能打开。

我使用如下命令

Findx *.exe|xargs {}

就可以一个接一个的打开所有exe程序,不用去一个一个点击了。

以上大部分bat文件,可以打命令名,会有使用帮助输出
大部分exe文件,可以打命令名加参数–h会有使用帮助输出
以上大部分命令都是仿照linux下的命令,不过功能比不上linux的程序,不过够用了。
所有命令行程序下载链接:hgy命令行程序集
建议将这些程序放在一个目录里,并将目录添加到系统的path环境变量里。
欢迎各位和我交流命令行程序,让我们一起来提供工作效率。

沙发为空,还不快枪?[点此发言]

目前还没有任何评论.