|
吾爱游客
发表于 2018-4-27 22:36
1、申 请 I D:比尔板蓝根
2、个人邮箱:41551815@qq.com
3、原创技术文章:关于批处理的一些学习心得
题外话: 本人是一名编程兴趣爱好者,目前正在自学汇编过程中,破解逆向能给我的编程思想带来很多灵感及帮助,特此申请。发布一些早期工作中用到的批处理,简单易懂,有时候用处大过于编写单独的程序。
1、隐藏批处理窗口vbs代码:CreateObject("WScript.Shell").Run "cmd /c sprise.bat",0
简单的一行代码,计事本编辑,后缀名改为vbs,即可隐藏名为sprise.bat的批处理运行窗口。
2、寻找可移动磁盘。
cd /d %~dp0 ::此句的作用为转换到该批处理所在的目录下
:restart ::goto跳转点
for %%i in (d e f g h i j k l m n o p q r s t u v w x y z) do (for /f "delims=" %%j in ('fsutil fsinfo drivetype %%i:^|find /i "可移动驱动器"') do (set "b=%%j"&&goto text))
::fsutil fsinfo drivetype (x盘):可以输出该盘的类型,U盘为可移动驱动器
::两个for循环嵌套,后一个for循环为字符串处理,成功则将变量b的值设为该盘的卷标,并跳转到text处(同时也退出了循环)。关于字符串的处理,有意了解百度即可。
:text ::goto跳转点
set "lis=%b:~0,1%" ::设lis为b变量的前一个字符,也就是盘符
vol %lis%:>nul 2>nul ::测试该盘是否存在,并取消回显。注意%lis%后面跟了个':'号
if %errorlevel% equ 0 (goto copy) else (ping 127.1 -n 5 > nul&goto restart)
::检测上个命令执行状态。equ为等于,执行成功%errorlevel%的值为0。如果执行成功,跳转到copy。如果不成功,自ping5次(延时,降低该批处理对计算机资源的占用。另,有的机子上不一定有choice命令),然后跳转重新开始(如果未检测到u盘,else便是无限循环的关键)
:copy ::goto跳转点
上述命令执行完后,U盘的盘符存在于变量%lis%中,随后便可用copy,xcopy,md,rd.....等命令进行操作。配上上一条vbs,可以做到隐藏窗口,静默运行的作用(这不就是所谓的'U盘小偷'吗,后续处理批处理也有,但为避免被人恶意利用,就不贴出来了)。
缺点,仅能读取第一个u盘(逻辑问题,因为本人没遇上需要处理多个u盘的场景,就没再进行深度开发),应用范围较窄。如需中止程序,需在任务管理器里结束cmd.exe进程。
3、隔x秒自动杀进程批处理
:2 ::goto跳转点
tasklist|findstr /i QQExternal.exe&&taskkill /f /im QQExternal.exe
::从tasklist列表中找出QQExternal.exe,如果成功,调用taskkill命令,使用/f /im参数将其杀掉。本可使用变量,但因为只是学习一些命令的用法,后续并没有使用,因此没有使用set。
choice /t 5 /d y /n > nul
::延时5秒,类似于ping 127.0.0.1 -n 5,但时间控制更精确。
goto 2 ::循环跳转
|
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|