很快就要放寒假了,可能没有什么时间来论坛了,所以就想将自己的关于批处理脚本的收藏发到论坛上面来的,但是由于硬盘上收藏的批处理脚本又多又杂,学业也比较重,所以一直没有时间整理。今天花了一天的时间来整理这些东西,也只整理了一小部分,先放出来让新手朋友们学习参考一下,以后再慢慢的加上来也不迟。
自己以前写的一些批处理脚本没有发到论坛上来,就以帖子的方式发出来吧,方便一些新手朋友参考一下,有错误的地方麻烦大家批评指正。
附件里面是整理的批处理脚本,有论坛的朋友写的,也有我自己写的。还有自己收藏的一些批处理教程。
1、--------------CountSpace.bat---------------CODE: [Copy to clipboard]
::code by lxmxn @ cn-dos.net
::19:20 2006-12-28
::检测字符串中的空格数.bat
@echo off&setlocal EnableDelayedExpansion
:begin
cls
set num=0
set b=0
set/p str=请输入要检测的字符串:
if "%str%"=="" (echo 输入错误,请重新输入……&& pause>nul && goto begin)
:redo
if "!str:~%num%,1!"==" " set /a b+=1
set /a num+=1
if "!str:~%num%,1!"=="" goto end
goto redo
:end
echo 字符串[%str%]中空格的个数为【%b%】.
pause&endlocal
set str=
set b=
set num=
goto :eof
::Finish_19:49 2006-12-28
2、--------------Happy Birthday To XXX XXX.bat---------------CODE: [Copy to clipboard]
::Code by lxmxn @ bbs.cn-dos.net
::这个是为我的一个朋友生日编写的小脚本,可惜那天没有机会给她看 =_=||
::Modified 16:06 2007-1-12
@echo off&mode con cols=80 lines=13&title,【%~n0】&setlocal,EnableDelayedExpansion&color 02
set a=To XXX XXX:
set b=距离不代表分离,没联系不代表忘记,没通电话不代表冷落。祝你生日快乐,圣诞快乐,新年快乐,永远快乐……
set c= ------ by Lxmxn
set d= 2006-12-24
echo/&echo\
for %%i in (a b c d) do (
set/p= <nul
for /l %%a in (0,1,100) do (
if not "!%%i:~%%a,1!"=="" (
if %%a==24 echo.&echo;
set/p= !%%i:~%%a,1!<nul
ping 127.1 -n 1 >nul
)
)
echo;&echo;
)
for /l %%i in (0x1,0x1,0x9) do (
set /a b=%%i ">>" 1
::call :modify %%i
set a=%%i
color !a!!b!
ping 127.1 -n 2 >nul)
ping 127.1 -n 3 >nul
goto :print
:end
echo.&echo.
ping 127.0.0.1 -n 7 >nul 2>nul
goto :eof
:print
cls&color 04&echo\&echo\&echo\&for /f "delims=" %%a in ('more +38 %0') do echo %%a
mshta vbscript:CreateObject("SAPI.SpVoice").Speak("Happy birthday to you!")(Window.close)
goto :end
iiiiiiiiiiiiiiiiiii 祝 XXX XXX :
|||||||||||||||||||||||
__|______H_a_p_p_y______|__ 生日快乐
|\/\/\/\/\/\/\/\/\\/\/\/\/\/|
|||||| B i r t h d a y |||||| 天天开心……
|,,,,,,,,,,,,,,,,,,,,,,,,,,,|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 越来越漂亮……
3、--------------ReadTxt.bat---------------CODE: [Copy to clipboard]
::Code by lxmxn @ bbs.cn-dos.net
::CMD逐行读取文本文件的内容,缺点是文件中不能含有CMD的特殊符号
::Modified 20:53 2007-1-12
::_______________________ReadTxt.BAT_______________________
@echo off&setlocal ENABLEDELAYEDEXPANSION
if "%~s1"=="" (echo 用法:将文件拖放到此批处理文件上释放即可&pause&exit/b 0)
FOR /F "DELIMS=" %%A IN ('type %~s1') DO (CALL;:__;"%%A")
Endlocal&PAUSE&goto :EOF
::显示字符子函数————————————-
:__
SET A="%1"
SET B=0
if "%A%"=="" goto end
:BEGIN
IF NOT "!A:~%B%,1!"=="" (
SET/P=!A:~%B%,1!<NUL
PING 127.1 -N 1 >NUL
SET/A B+=1
GOTO BEGIN
) else (
:end
echo/
)
::_______________________ReadTxt.BAT_______________________
4、--------------Ren_NoFor.bat---------------CODE: [Copy to clipboard]
::Code by lxmxn @ bbs.cn-dos.net
::将C盘下所有的a.abc文件重命名为a.bcd,要求不能用for命令
::Date 15:06 2007-1-11
@echo off
:begin
set file=%random%
if exist %file% goto begin
dir /s/b/a-d c:\a.abc 2>nul >%file%
:loop
set a=
set /p a=<%file%
rem if "%a%"==" " goto :end
if "%a%"=="" goto :end
del "%a%"
set a=%a:\=\\%
findstr /v /c:"%a%" %file% >%file%_
del %file%
echo ren %file%_ %file%
rem ping -n 1 127.1 >nul
goto loop
:end
del %file%
pause
5、--------------SearchFile.bat---------------CODE: [Copy to clipboard]
::code by lxmxn @ cn-dos.net
::全盘搜索指定日期生成的文件
::Modified 16:21 2007-1-12
@echo off&setlocal enabledelayedexpansion
echo\&echo/
echo;
set /p date_=请输入要查找的文件生成日期,格式为纯数字,比如 20070111 ,代表2006年12月14日:
set db=%date_%000000.000000+480
set da=%date_%235959.000000+480
for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
set var=%%i
set drive=!var:~-2!
fsutil fsinfo drivetype !drive!|find "固定" >nul&& (
call :info
wmic datafile where "drive='!drive!' and creationdate>='%db%' and creationdate<='%da%'" get name,creationdate
set /p choose=在 !drive! 盘查找完毕,查找过程长,是否在其它盘继续查找?【Y】/【N】
if /i not "!choose!"=="Y" goto :end
)
)
goto :eof
:info
cls
echo\&echo 正在 !drive! 盘查找%date_:~0,4%年%date_:~4,2%月%date_:~6,2%日生成的所有文件,查找过程可能需要很长时间,请耐心等待……
goto :eof
:end
pause
exit/b 0
6、--------------View_context.bat---------------CODE: [Copy to clipboard]
::Code by lxmxn @ cn-dos.net
::列出当前文件夹中所有文本文件,并用记事本根据文件编号选择打开哪个
::Modified 23:03 2007-1-12
@echo off&setlocal EnableDelayedExpansion
set/a n=0
for /f "delims=" %%i in ('dir /b/a-d *.txt *.bat *.vbs *.js *.html *.ini *.inf') do (
set/a n+=1
echo ^(!n!^)_%%i
set file!n!=%%i
)
rem 打开文件
set /p choose=请选择要打开的文件:
if not defined choose (cls&echo;&set/p= 输入错误&exit/b 0)
if %choose% gtr %n% (cls&echo;&set/p= 输入错误&exit/b 0)
notepad.exe "!file%choose%!"
)
pause
7、--------------删除腾讯聊天广告.bat---------------CODE: [Copy to clipboard]
::Code by lxmxn @ bbs.cn-dos.net
::原理是将QQ目录的广告文(.gif/.swf文件)件内容清空
::2006-11-10 Windows xp @ CMD Shell
@echo off&&color 0b
set /p adp=请输入腾讯QQ的安装目录:
if "%adp%"=="" set adp=C:\Program Files\Tencent\QQ
for /f "delims=" %%a in ('dir /b/a-d/s "%adp%\AD\*.gif" "%adp%\AD\*.swf"') do (
if %%~za equ 0 (echo %%~fa 数据已经清空) else (copy /y nul "%%a" >nul)
)
pause
8、--------------文件大小填充器.bat---------------CODE: [Copy to clipboard]
::填充文件大小的批处理,填充进去的是不可见的字符
::Windows XP xp2 @ CMD
::Code by lxmxn @ bbs.cn-dos.net
@echo off&&setlocal ENABLEDELAYEDEXPANSION&&mode con cols=70 lines=14&&color 04
Title 文件大小填充器. ------ lxmxn @ bbs.cn-dos.net
:be
cls&&echo;&&echo=
set file=
set choose=
set /p file=请输入要填充的文件:
set file=%file:"=%
echo;
if not defined file (cls&&echo 输入错误,请重新输入...&&pause>nul&&goto be)
if exist "%file%" (
:begin
for /f "delims=" %%f in ("%file%") do (
set fsize=
set fsize=%%~zf
if defined choose goto ha
set/p choose=文件 "%%~nxf" 为 !fsize! 字节,确定要修改它的大小?[ Y / N ]
if /i not "!choose!"=="y" goto,:eof
echo\
:bd
cls&&echo[&&echo]
set size=
set/p size= 请输入填充后的字节大小:
if not defined size (cls&&echo 输入错误,请重新输入...&&pause>nul&&goto :bd)
:ha
if !fsize! geq !size! (
echo[&&echo]&&echo 该文件字节数已经大于或等于 !size! 字节.
pause>nul&&goto :eof
) else (
set /p a= <nul >>"%file%"
goto begin
)
)
) else (cls&&echo "%file%"s 不存在,请重新输入...&&pause&&goto be)
PAUSE
9、--------------查看文件系统类型.bat---------------CODE: [Copy to clipboard]
::Code by lxmxn @ bbs.cn-dos.net
::查看各个驱动器的文件系统类型
::Modified 16:44 2007-1-12
@echo off&&mode con cols=60 lines=12&&echo[&&echo.&&color 04
echo -------- Made by lxmxn.
echo]&&title 文件系统类型查看器.
::setlocal enabledelayedexpansion
for %%a in (B C 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 "tokens=1-3" %%i in ('fsutil fsinfo volumeinfo %%a:\ ^| find "文件系统名"') do (
echo %%a: 驱动器的文件系统类型为 %%k
echo.
)
)
)
set/p=
10、--------------模拟瑞星扫描系统.bat---------------CODE: [Copy to clipboard]
::Code by lxmxn @ bbs.cn-dos.net
::模拟瑞星杀毒软件扫描系统文件,开始的时候可能会久一点,耐心等一下就好了
::Modified 21:00 2007-1-12
@echo off&mode con cols=80 lines=10
setlocal enabledelayedexpansion&color 04
set a=
for /f "tokens=*" %%i in ('dir c:\*.* /b/s/a-d') do (
@title 扫描%%~si>nul && @echo. && @echo 瑞星杀毒系统正在对下列文件进行全面的扫描: && @echo. && @echo 已经扫描文件数: !a! && set /a a+=1 && @echo. && @echo %%~fi && ping 127.0.0.1 -n 1 -w 1000>nul 2>nul && cls
)
pause
11、--------------统计文件属性.bat---------------CODE: [Copy to clipboard]
::Code by lxmxn @ bbs.cn-dos.net
::统计文件的各种属性信息(纯属无聊之作 =_=||)
::Modified 17:22 2007-1-12
@echo off&&color 0e
if not "%~s1"=="" (
title %~nx1 的属性统计信息----Made by Lxmxn &&mode con:cols=90 lines=22&&echo[&&echo.
echo ------------- Made by lxmxn @ CMD Shell
set aa=%~a1
set aa=%aa:a=存档%
set aa=%aa:r=只读%
set aa=%aa:s=系统%
set aa=%aa:h=隐藏%
set aa=%aa:-=…%
echo &&sleepx -m 500
echo 当前统计的文件———%~1
echo;
echo 文件的属性—————%aa%
echo;
echo 文件所处驱动器———%~d1
echo;
echo 文件路径——————%~p1
echo;
echo 文件名———————%~n1
echo;
echo 文件扩展名—————%~x1
echo;
echo 文件大小——————%~z1 字节
echo;
echo 文件修改日期———%~t1&&sleepx -m 400 &echo &&set /p a= &exit/b 0 ) else (echo;&echo;&set/p= 用法:拖放文件到本脚本文件上释放即可&&exit/b 0)