在批处理中,如果需要把一个命令的处理结果赋值给一个变量,可以使用如下方法:
for /f "delims=" %%t in ('命令字符串') do set str=%%t
echo %str%
当命令字符串中含有%时,需要转义。使用imagemagick中的identify命令获取图片的宽和高:
identify -format %wx%h demo.jpg
直接在命令行中使用上述命令可以看到输出了图片的高和宽,但是用它放在批处理脚本中来获取命令的输出结果,则失败,原因是命令字符串中含有%符号,它在批处理有特殊含义,所有需要转义,转义的方法是使用两个%%,正确的做法是:
for /f "delims=" %%t in ('identify -format %%wx%%h demo.jpg') set str=%%t
刚用苹果的系统,还是有些不太习惯,在window下当打开很多窗口,很容易回到桌面,经常琢磨,mac下也有类似功能,比如触摸板(四个指头分开)或快捷键(command+F3),也可shift+command+F3,这只是把窗口移动到左、右和上方边缘了,另外一种方法上通过快捷键option+command+H和command+M联合完成,第一个是先隐藏所有窗口,然后再最小化当前窗口。
默认情况下,在终端中显示的hostname看起来不爽,这个可以修改的,修改方法为:
系统偏好设置 –> 共享 –> 电脑名称,在后面的输入框输入想要的名称即可。
要想知道window xp系统从上次启动到现在共运行了多长时间,可以在命令行中使用命令:systeminfo,该命令的输出里面有一行“系统启动时间”就是指系统从开启到现在共运行的时间,另外可以通过 net statistics WORKSTATION 命令获取本次系统启动的时间。
findstr是window系统自带的命令,用途是查找指定的一个或多个文件文件中包含(或通过参数 /V来控制不包含)某些特定字符串的行,并将该行完整的信息打印出来,或者打印查询字符串所在的文件名。其用途和用法都类似linux下的grep命令,基本用法如下:
findstr 参数 "搜索字符串" [[drive:][path]filename[ ...]]
其中参数可以组合多个,[drive:]、[path]是可选的,如果省略,默认是查找当前目录,至少指定一个文件,可以同时指定多个,用空格分隔,另外文件名可以使用通配符,例如所有文本文件,就可以写成 *.txt 即可。
另外findstr的输入也可以接受来自管道的输出,例如命令:netstat -nao | findstr “8080″ 可以查看命令netstat输出的信息中所有包含“8080”字符串的行。
用法1:打印出文件demo.txt中包含“hello world”字符串的行的完整信息(不区分大小写),并且打印出行号。
findstr /NI /C:"hello world" demo.txt
注意:不能漏写”/C:”,否则含有hello或者world的行都作为结果打印出来。
用法2:找出并打印出目录C:\deom下(包括其子目录)所有含有字符串“netingcn.com”的文本文件的文件名。
findstr /MSI "netingcn.com" *.txt
通过findstr /? 可以看到帮助信息,帮助信息如下:
在文件中寻找字符串。
FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/F:file]
[/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
strings [[drive:][path]filename[ ...]]
/B 在一行的开始配对模式。
/E 在一行的结尾配对模式。
/L 按字使用搜索字符串。
/R 将搜索字符串作为一般表达式使用。
/S 在当前目录和所有子目录中搜索匹配文件。
/I 指定搜索不分大小写。
/X 打印完全匹配的行。
/V 只打印不包含匹配的行。
/N 在匹配的每行前打印行数。
/M 如果文件含有匹配项,只打印其文件名。
/O 在每个匹配行前打印字符偏移量。
/P 忽略有不可打印字符的文件。
/OFF[LINE] 不跳过带有脱机属性集的文件。
/A:attr 指定有十六进位数字的颜色属性。请见 "color /?"
/F:file 从指定文件读文件列表 (/ 代表控制台)。
/C:string 使用指定字符串作为文字搜索字符串。
/G:file 从指定的文件获得搜索字符串。 (/ 代表控制台)。
/D:dir 查找以分号为分隔符的目录列表
strings 要查找的文字。
[drive:][path]filename
指定要查找的文件。
除非参数有 /C 前缀,请使用空格隔开搜索字符串。
例如: 'FINDSTR "hello there" x.y' 在文件 x.y 中寻找 "hello" 或
"there" 。 'FINDSTR /C:"hello there" x.y' 文件 x.y 寻找
"hello there"。
一般表达式的快速参考:
. 通配符: 任何字符
* 重复: 以前字符或类别出现零或零以上次数
^ 行位置: 行的开始
$ 行位置: 行的终点
[class] 字符类别: 任何在字符集中的字符
[^class] 补字符类别: 任何不在字符集中的字符
[x-y] 范围: 在指定范围内的任何字符
\x Escape: 元字符 x 的文字用法
\ 字位置: 字的结束
参数/B等价于在搜索字符串前的”^”符号。
参数/E等价于在搜索字符串后的”$”符号。
参数/S会对目录进行递归查询。
参数/C就是强制把输入的子字符串作为查询目标,否则输入的字符串中有空格的话,findstr会以“或”的逻辑来进行查找。
参数/D可以实现对多个存放在不同路径的文件夹进行查询。
个人习惯,不喜欢词出现的位置经常变动,所以在设置–>高级–>动态词频前面的勾去掉,这样一来,词的位置就固定的,但比如我们经常输入的某个词默认不是第一个,这就比较不友好,不过可以通过两种方法来调整。一种是选中“动态词频”,然后再输入法输入那个那个词的拼音,通过数字选择哪个词,不出意外,下次再输入的时候就出现在第一位,如果还不是第一位,就多操作几盘,应该就可以在第一位了,然后再把“动态词频”前面的勾去掉即可;另外方法是输入词后,把鼠标移动到需要的那个词上面,会出现提示,选择“固定首位”即可。
对于单字的顺序调整,采用上述调整词的第二种方法即可。例如,在默认情况下,输入b出来的第一个字是“吧”,但是我更习惯第一个是“不”,调整方法就是输入b后,在出来的候选字上找到“不”,把鼠标指针移动到“不”上,在出来的提示框中点击“固定首位”,下次再输入“b”时,首位就变成“不”了。
最近发现电脑什么事都没有干,但是无线网络的指示灯有时候会不停的闪动,说明有网络数据传输,通过任务管理器发现了一个比较奇怪的进程,就是PPAP.exe,google一把,原来是pplive的网络加速器,它就是传输数据的元凶。只要使用过pplive,PPAP.exe会一直留在后台,哪怕是关闭了pplive。由于PPAP.exe后台偷偷的传输数据,可能会影响到正常的上网。网上搜索了一下,也没有发现很好解决方法,决定自己动手,丰衣足食,写了一个干掉PPAP.exe进程批处理文件,就放在桌面上,有事没事双击它一下。批处理的内容很简单,就是使用taskkill 命令来干掉指定的进程,如下:
taskkill /F /IM PPAP.exe /T
建立批处理的步骤是,先在桌面上建立一个空白的文本文件,把上面的内容复制粘贴到该文件中,保存退出,然后重命名刚才的文本文件,例如叫“kill_ppap.bat”,双击该文件就可以干掉那该死的流氓进程了。注意:如果双击是记事本打开的,原因就是刚才重命名并没有更改掉文件的扩展名,你可能需要修改一下文件的显示状态,打开任意一个文件夹,然后找到菜单栏里的工具–>文件夹选项–>查看–>高级设置,找到隐藏已知文件类型的扩展名,把其前面的勾去掉,然后确定即可,这个时候你应该看到刚才的文件全名是kill_ppap.bat.txt,去掉后面的.txt即可。
下载地址:kaill-ppap