[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

批处理for之所有句型等

@echo off
::==============基本用法==================================
::当括号中的内容为路径时可列出指定位置下所有文件(带路径)(不含子文件夹中的文件),否则当作集合处理循环列出各项值,空格、跳格、逗号、分号为其分隔符。
::for %%i in (C:\WINDOWS\Help\*) do echo %%i
::for %%i in (www,mzwu,com) do echo %%i
::for %%i in (1;1;10) do echo %%i
::==============/d=============================================
::说明:此命令可以列出指定位置下的所有文件夹(带路径)(不含子文件夹),支持通配符。
::for /d %%i in (C:\WINDOWS\Help\*) do echo %%i
::==============/r==============================================
::列出指定位置及其子文件夹下的所有文件(带路径),支持通配符。
::for /r C:\WINDOWS\Help\ %%i in (*.*) do echo %%i
::==============/l==============================================
::转换成C#语句为for(int i=start;i<=end;i+=step),转换成VB语句为for i=start to end step step。
::for /l %%i in (10,-1,1) do echo %%i
::==============/f==============================================
::列出test.txt中每行内容
::for /f "delims=" %%i in (test.txt) do echo %%i  
::从字符串中提取出"木子屋"
::for /f "delims=_ tokens=2" %%i in ("0100_木子屋") do echo %%i
::列出所有环境变量名称
::for /f "delims==" %%i in ('set') do echo %%i  
pause

补充
::一、for /r(查询文件)四种句型
::----------------------------------------------------------------
::1、枚举F:盘下所有的文件
:echo off
::for /r f:\ %%i in (*) do echo %%i
::pause>nul
::----------------------------------------------------------------
::2、枚举F:盘下所有的 .bat文件(包括子目录)
::@echo off
::for /r f:\ %%i in (*.bat) do echo %%i
::pause>nul
::----------------------------------------------------------------
::3、枚举当前目录中的所有批处理文件(包括子目录)
::@echo off
::for /r %%i in (*.bat) do echo %%i  %省略路径%
::pause>nul
::----------------------------------------------------------------
::4、如果集仅为一个单点(.)字符,则枚举该目录树。(这是特例)
::@echo off
::for /r f:\bat %%i in  (.) do echo %%i
::pause
::=============================================================
::=============================================================
::for /d查询文件夹(目录)二种句型
::----------------------------------------------------------------
::查询F盘根目录下的文件夹
::@echo off
::for /d %%i in (f:\*) do echo %%i
::pause>nul
::----------------------------------------------------------------
::查询当前目录中的文件夹(省略f:\)
::@echo off
::for /d %%i in (*) do echo %%i
::pause>nul

[ 本帖最后由 taojunyi 于 2009-2-4 14:07 编辑 ]
1

评分人数

所发代码若不止一行,请务必用code标记把代码部分首尾括起来,以便他人复制;

Q: 如何用code把代码扩起来?
A: http://bbs.bathome.net/thread-404-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. ::@echo off
  2. ::for /r f:\bat %%i in  (.) do echo %%i
  3. ::pause
复制代码
"."代表上一个目录为什么枚举本目录呢?

TOP

回复 3楼 的帖子

.  一个点代表当前目录
.. 两个点才是上级目录(或父目录)

TOP

补充for /f

1、for /f %%i in (文件名) do (……)
  2、for /f %%i in ('命令语句') do (……)
  3、for /f %%i in ("字符串") do (……)
  4、for /f "usebackq" %%i in ("文件名") do (……)
  5、for /f "usebackq" %%i in (`命令语句`) do (……)
  6、for /f "usebackq" %%i in ('字符串') do (……)

TOP

for /r d:\ %i in (.) do @echo %i
for /r d:\ %i in (..) do @echo %i
运行结果好像是一样的

TOP

回复 6楼 的帖子

因为你是从D盘根目录开始遍历的,你可以换个子目录试试,不要用根目录。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

LZ辛苦!

学习ing! 思考ing

TOP

返回列表