【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文件
批处理改名代码
-
@echo off & setlocal EnableDelayedExpansion
-
title 文件批量重命名整理
-
mode con cols=60lines=10 & color 9b&set list=%random%
-
echo.&echo.
-
echo 此批处理脚本用于将此路径下的所有同类文件批量重命名
-
echo.
-
set /p start=开始整理文件请输入[Y]:
-
if not "%start%"=="y" if not "%start%"=="Y" exit
-
echo.
-
set /p bak=请输入要整理的文件名后缀[如jpg]:
-
echo.
-
set /p name=请输入更改后的文件名称(直接回车则按从01开始的有序数字命名):
-
for /f "delims=" %%i in ('dir /b *.!bak!') do (
-
set /a num+=1
-
if not "%%~nxi"=="%~nx0" (
-
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%
-
)else set /a num-=1
-
)
-
set /a no=!num!+2
-
mode con cols=60lines=!no!&color 5a
-
echo !num!个文件已经完成重命名,分别为:
-
type %temp%\%list%
-
set /p type=要导出该清单列表请输入[Y],否则直接回车键退出。
-
if not "%type%"=="y" if not "%type%"=="Y" exit
-
copy %temp%\%list% 重命名列表清单.txt&del /q %temp%\%list%&exit
本文出自 “成鹏致远” 博客,请务必保留此出处http://infohacker.blog.51cto.com/6751239/1171510