学习笔记 - 批处理3
2015-06-04 11:02
204 查看
for
/d
/l
/r
/f
TEXT.txt
TEXT22222.txt
拓展
TEST3.txt
TEST44444.txt
截取字符串例子
/d
@echo off ::显示目录 ::cd /d 某目录 /d是直接到某个目录 没有这句话就是在当前目录下去执行 for /d %%i in (*) do ( ::(s*)表示s开头文件夹 echo %%i ) pause ::删除目录 for /d %%i in (*) do ( rd /S /Q %%i ::如果文件夹有空格则需要加双引号 ) pause
/l
@echo off ::显示目录 ::cd /d 某目录 /d是直接到某个目录 没有这句话就是在当前目录下去执行 for /d %%i in (*) do ( ::(s*)表示s开头文件夹 echo %%i ) pause ::删除目录 for /d %%i in (*) do ( rd /S /Q %%i ::如果文件夹有空格则需要加双引号 ) pause
/r
@echo off ::枚举(显示)当前目录的文件 for /r %%i in (*) do ( echo %%i ) pause ::指定目录来枚举(显示)文件 for /r "D:\代码存放\批处理文件(bat,cmd)\for命令\" %%i in (*.bat) do ( echo %%i ) pause for /r %%i in (t*.*) do ( del "%%i" echo 已删除 ) pause
/f
TEXT.txt
01 02 03 11 12 13 21 22 23 31 32 33 41 42 43
TEXT22222.txt
.01 02 03 11 12 13 .21 22 23 .31 32 33 41 42 43
@echo off echo -----1 for /f %%i in (TEST.txt) do ( echo %%i ) echo -----2 for /f "delims=" %%i in (TEST.txt) do ( echo %%i ) echo -----3 for /f "delims=*" %%i in (TEST.txt) do ( echo %%i ) echo -----4 for /f "delims= " %%i in (TEST.txt) do ( echo %%i ) echo -----5 for /f "tokens=2 delims= " %%i in (TEST.txt) do ( echo %%i ) echo -----6 for /f "tokens=2-3 delims= " %%i in (TEST.txt) do ( echo %%i %%j ) echo -----7 for /f "tokens=2,3 delims= " %%i in (TEST.txt) do ( echo %%i %%j ) echo -----8 for /f "tokens=2,* delims= " %%i in (TEST.txt) do ( echo %%i %%j ) echo -----9 for /f "tokens=2-* delims= " %%i in (TEST.txt) do ( echo %%i %%j ) echo -----10 for /f "tokens=* delims= " %%i in (TEST.txt) do ( echo %%i ) ::skip就是要忽略文件的前多少行,而eol用来指定当一行以什么符号开始时,就忽略它。 echo -----11 for /f "skip=2 tokens=*" %%i in (TEST.txt) do ( echo %%i ) echo -----12 for /f "skip=2" %%i in (TEST.txt) do ( echo %%i ) echo -----13 for /f "eol=. tokens=*" %%i in (TEST22222.txt) do ( echo %%i ) pause
拓展
TEST3.txt
"1111 2222" "3333" 44"44
TEST44444.txt
c:\windows c:\windows\system32 c:\windows\fuck c:\windows\you
@echo off echo ~I 删除任何引号("),扩展 %I echo 1、若字符串首尾同时存在引号,则删除首尾的引号; echo 2、若字符串尾不存在引号,则删除字符串首的引号; echo 3、如果字符串中间存在引号,或者只在尾部存在引号,则不删除。 for /f "delims=" %%i in (TEST3.txt) do ( echo %%~i ) echo ~fI 将 %I 扩展到一个完全合格的路径名 for /f "delims=" %%i in ('dir /b') do ( echo %%~fi ) echo. for /f "delims=" %%i in ('dir') do ( echo %%~fi ) echo. for /f "delims=" %%i in ('dir /b') do ( echo %%i ) echo. for /f "delims=" %%i in ('dir') do ( echo %%i ) echo ~dI 仅将 %I 扩展到一个驱动器号 for /f "delims=" %%i in ('dir /b') do ( echo %%~di ) echo ~pI 仅将 %I 扩展到一个路径 for /f "delims=" %%i in ('dir /b') do ( echo %%~pi ) echo ~nI 仅将 %I 扩展到一个文件名 for /f "delims=" %%i in ('dir /b') do ( echo %%~ni ) echo ~xI 仅将 %I 扩展到一个文件扩展名 for /f "delims=" %%i in ('dir /b') do ( echo %%~xi ) echo ~sI 扩展的路径只含有短名 for /f "delims=" %%i in ('dir /b') do ( echo %%~si ) echo ~aI 将 %I 扩展到文件的文件属性 for /f "delims=" %%i in ('dir /b') do ( echo %%~ai ) echo ~tI 将 %I 扩展到文件的日期/时间 for /f "delims=" %%i in ('dir /b') do ( echo %%~ti ) echo ~zI 将 %I 扩展到文件的大小 for /f "delims=" %%i in ('dir /b') do ( echo %%~zi ) echo ~$PATH:I 查找列在路径环境变量的目录,并将 %I 扩展到找到的第一个完全合格的名称。如果环境变量名未被定义,或者没有找到文件,此组合键会扩展到空字符串 for /f "delims=" %%i in (TEST44444.txt) do ( echo %%~$PATH:i ) echo 我们直接在CMD里输入echo 百分号path百分号, 会显示系统的path环境变量. echo %%~$PATH:i也就是在文本里寻找匹配这个PATH变量值的内容,如果里面的内容和PATH变量相同,就打印出来. echo 如果不相同,就显示一个空行!只能适用于PATH变量,其他变量不行,如果要比较很多值,可尝试把值赋予给PATH变量. pause
截取字符串例子
::为了说明这个问题,我在这里把批处理取字符,做下进一步的解释 ::如下: ::echo %var:~n,k% ::我们在这里对每个参数做个说明:"%var",即我们要从中要截取字符的字符串." ~ "取字 ::符标志符(我是这么理解的),"n" 我们将其理解为指针,"k"我们将其理解为偏移地址.(注 :::指针和偏移地址都是从零开始数的) ::我们还是用namejm版主的例子做下说明: @echo off set str=123456789 rem 定义一个str字符串为123456789 echo 第一个字符为:%str:~0,1% rem 指针为0,偏移地址为1,即从第0位开始,取1位 echo 头两个字符为:%str:~0,2% rem 指针为0,偏移地址为2,即从第0位开始,取2位 echo 头5个字符为:%str:~0,5% rem 指针为0,偏移地址为5,即从第0位开始,取5位 echo 去掉最后一个字符后的字符串为:%str:~0,-1% rem 当"k"为负值时,我们可以这样理解:从指针开始处开始取其后面所有字符,然后减去 后面"abs(k)位"..所以这个句字我们可以做如下解释:从第0位开始取其全部字符 为:123456789然后从后面减去abs(k)位,所以最后结果为:12345678 echo 去掉最后3个字符后的字符串为:%str:~0,-3% rem 该句解释同上↑ echo 最后一个字符为:%str:~-1% rem 参数"n,"和"k"都可以为缺省,缺省"n,"时可以理解为:从abs(k)位开始取其全部 echo 倒数第4个及其之后的字符为:%str:~-4% rem 解释同上↑ echo 最后一个字符为:%str:~-1,1% rem n为负值时,表示从后面开始截取字符,取k位(此时n应从1开始数) echo 最后一个字符为:%str:~-1,2% rem 解释同上↑ echo 倒数第4个字符为:%str:~-4,1% rem 解释同上↑ echo 倒数第4个及其之后的1个字符为:%str:~-4,2% rem 解释同上↑ echo 倒数第4个及其之后的2个字符为:%str:~-4,3% rem 解释同上↑ pause
相关文章推荐
- 让Python文件也可以当bat文件运行
- Oracle Containers for J2EE远程安全漏洞(CVE-2014-0413)
- C位出道后却遇前狼后虎,生鲜电商多点如何突围?
- “to B”的金矿还是BAT的?
- Bat:一种具有语法高亮和 Git 集成的 Cat 类命令
- 飞信的CMD命令行接口批量发送信息
- bat 截取字符串(for命令) 推荐收藏
- 用vbs实现cmd功能的代码
- 实现FTP整站上传的批处理代码
- 用批处理删除注册表健值的方法分享
- cmd批处理转义字符%的详细解释
- 通过批处理调用SQL的方法(osql)
- 将批处理文件注册成服务在系统启动的时候自动调用
- 杀毒软件 Dr.Web Anti-virus for Windows Vista 4.44.0 Beta
- 用批处理实现读取文本文件并实现超链接代码的输出[原创]_DOS/BAT_脚本之家
- 用批处理解决数学问题的代码第1/4页
- 批处理向FTP上传具有指定属性的文件(增量备份)
- 如何让批处理程序启动的时候最小化
- 利用批处理结合winrar轻松压缩文件