接触DOS命令和批处理已经有很长一段时间了,一直在学习,现将所学经验以及自己写的批处理发出来,作为小结留作参考。另外本文有一些主题是引用自网友的文章。
1、将批处理文件本身复制到windows启动项,包含xp和win7两个系统。360会提示有病毒或者木马风险。
批处理文件名a.bat,内容如下:
REM 文件名a.bat,作用是copy自身到windows启动项。xp 和win7测试通过。
REM 另外还有$1,$2,$3....$9这9个自动化变量,他们的意思是:例如,在cmd命令提示符下,运行d:>a.bat abc def ggg
copy %0 "C:\Users\lm\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
echo 参数3=$3;
REM 参数$0表示批处理文件本身。
copy %0 "%userprofile%\「开始」菜单\程序\启动\"
copy %0 "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
echo 参数1=$1;
echo 参数2=$2;
批处理文件 b.bat内容如下:@echo off REM:这句的意思是关闭回显,不然下面的每条命令都会打印到屏幕上。
REM 如果想禁止腾讯游戏的运行,只需要将其安装路径复制到下面即可。必须放在双引号里面,因为路径可能有空格。
REM 列举该目录及其子目录下,所有的可执行文件,*.exe ,找到后将其放到exe.v这个文件里。
REM 下面是for的用法,此用法将在后面小节讲述。
REM的意思就是注释,不过包含REM注释的行,要注意不能包含 & 符号。举例说明,如下所示,aaa会打印出来。虽然他是在REM注释的行里。
REM 我加了注释 & echo aaa;
cd /d "D:\Program Files\腾讯游戏"
dir /a-d /b /s *.exe >exe.v
for /f "usebackq delims=" %%i in ("exe.v") do (
echo "%%i" >"%%i.v"
echo "goooo" >>"%%i.v"
type "%%i.v"
findstr liming.exe "%%i.v" &&(echo "find liming.exe in aaa" && move liming.exe liming_liming.exe)||( echo "not find...in %%i.v")
pause
del /f /s /q "%%i.v"
)
del /f /s /q exe.v
REM 删除用到的临时文件exe.v
REM 上面for循环里的各条命令解释:
REM findstr : 查找字符串命令,crossfire.exe是腾讯穿越火线的游戏名。
REM type a.txt : 打印a.txt的内容,在上面的例子里,这里打印出来的是 D:\Program Files\腾讯游戏\crossfire.exe,在for循环里该目录下的exe文件都会依次打印出来。
REM && : 该符号意思是,如果&&符号前面的命令执行成功,则执行&&后面的命令。 || 这个正好相反,如果前面的命令失败,则执行||后面的命令。
REM del /f /s /q "%%i.v" : 强制删除临时文件,比较要加双引号,因为%%i的路径里面有空格,不加双引号会删除失败。