【Cmd】批处理

小续

看了下时间,10年写的了

批处理是个很强大的东西,现在任何一个工具都包含这个功能,只是被工具给封闭起来了

怀念下dos时代的批处理啊

rem即高级语言中的注释的意思,能看懂每个程序的作用了吧


 

@echo off

rem …………………call命令的应用

type a.txt

call c.bat

echo 现在调用xx后面的

call :xx

dir a.txt

:xx

echo dir a.txt没有执行

 


 

@echo off

rem …………………start命令的应用

start "a.txt" /wait dir a.txt

echo 已经从新命令窗口返回

 


echo 下面的注释没有显示出来

rem …………………注释命令的应用@echo off

rem 这个是注释命令

start "a.txt" /wait dir a.txt

 


@echo off

rem  …………………shift命令的应用@echo off

:round

if "%1"=="" goto end

echo %1内容如下:

type %1

echo.

shift

goto round

:end

rem shift命令   设置批处理从第N个参数开始移位,N的值是0至8

rem 符号%0至%9专用于批处理从命令行获得的参数,一次代表命令行输入的相应参数,即输入的参数

rem 输入后面要带上相应的a.txt或者更多………………

 


set /a sum=0

rem  …………………for命令的应用@echo off

rem set设置成可求值的数字表达式的时候用/a

for %%x in (*.txt) do (

echo %%x文件的内容如下:

type %%x

echo.

set /a sum=sum+1

)

echo 一共显示了%sum%个文件

rem  解析for %%x in (*.txt)   对于当前目录下所有以.txt结尾的文件

 


@echo off

rem  …………………通配符*和?的应用

rem *代表任意多个(包括0个字符),?代表任意单个字符

if exist *.txt echo 当前文件夹下有文件!

echo 以p开头的目录如下:

dir /d /w /b p*

echo.

echo 以dk开头的、第三个字符为任意字符、第四个字符为t、扩展名为三个字符且以do开头的文件如下:

dir /b /w dk?t.do?

 


@echo off

rem………………… 重定向符<、>、>>的应用

rem 控制数据的输入输出方式,>会替换目地数据,而>>符号只是将数据源添加到目标数据后

echo 正在自动创建的批处理…………………

echo echo 进入auto.bat批处理文件中…………………

echo type a.txt > auto.bat

echo dir /b /w >> auto.bat

echo 被自动创建的auto.bat文件的内容如下:

type auto.bat

echo.

echo 排序后的auto.bat为:

sort < auto.bat

 


@echo off

rem …………………管道符|的应用

rem 他将一个命令的输出数据提取出来,然后将提取出来的数据作为另一个命令的输入

find "requirements" a.txt | sort >result.txt

echo 对包含"requirements"单词的行排序后如下:

type result.txt

rem  批处理首先在a.txt文件中找出所有包含requirements的行,接着将找出的结果通过|传给rem  sort命令进行排序,最后将排序结果保存到result文件

 


批处理改名代码

  1. @echo off & setlocal EnableDelayedExpansion

  2. title 文件批量重命名整理

  3. mode con cols=60lines=10 & color 9b&set list=%random%

  4. echo.&echo.

  5. echo 此批处理脚本用于将此路径下的所有同类文件批量重命名

  6. echo.

  7. set /p start=开始整理文件请输入[Y]:

  8. if not "%start%"=="y" if not "%start%"=="Y" exit

  9. echo.

  10. set /p bak=请输入要整理的文件名后缀[如jpg]:

  11. echo.

  12. set /p name=请输入更改后的文件名称(直接回车则按从01开始的有序数字命名):

  13. for /f "delims=" %%i in ('dir /b *.!bak!') do (

  14. set /a num+=1

  15. if not "%%~nxi"=="%~nx0" (

  16. if !num! LSS 10 (ren "%%~nxi" !name!0!num!.!bak!&echo %%~xni 已重命名为: !name!0!num!.!bak! >>%temp%\%list%) else ren "%%~nxi" !name!!num!.!bak!&echo %%~xni 已重命名为: !name!!num!.!bak! >>%temp%\%list%

  17. )else set /a num-=1

  18. )

  19. set /a no=!num!+2

  20. mode con cols=60lines=!no!&color 5a

  21. echo !num!个文件已经完成重命名,分别为:

  22. type %temp%\%list%

  23. set /p type=要导出该清单列表请输入[Y],否则直接回车键退出。

  24. if not "%type%"=="y" if not "%type%"=="Y" exit

  25. copy %temp%\%list% 重命名列表清单.txt&del /q %temp%\%list%&exit

 

 

 

本文出自 “成鹏致远” 博客,请务必保留此出处http://infohacker.blog.51cto.com/6751239/1171510

posted @ 2013-06-27 17:37  Leo.cheng  阅读(643)  评论(0编辑  收藏  举报