首页 > 编程 > BAT > 正文

dos下遍历目录和文件的代码(主要利用for命令)

2020-06-09 13:54:17
字体:
来源:转载
供稿:网友
===== 文件夹结构 =============================================
D:/test
---A Folder 1
|-----A file 1.txt

|-----A file 2.txt
|-----A file 3.txt
---B Folder 2
|-----B file 1.txt
|-----B file 2.txt
|-----B file 3.txt
|---B Folder 3
|-----B sub file 1.txt
|-----B sub file 2.txt
|-----B sub file 3.txt

代码如下:
@echo off
set work_path=D:/test
D:
cd %work_path%
for /R %%s in (.,*) do (
echo %%s
)
pause

结果
D:/test/.
D:/test/A Folder 1/.
D:/test/A Folder 1/A file 1.txt
D:/test/A Folder 1/A file 2.txt
D:/test/A Folder 1/A file 3.txt
D:/test/B Folder 2/.
D:/test/B Folder 2/B file 1.txt
D:/test/B Folder 2/B file 2.txt
D:/test/B Folder 2/B file 3.txt
D:/test/B Folder 2/B Folder 3/.
D:/test/B Folder 2/B Folder 3/B sub file 1.txt
D:/test/B Folder 2/B Folder 3/B sub file 2.txt
D:/test/B Folder 2/B Folder 3/B sub file 3.txt
代码如下:
@echo off
set work_path=D:/test
D:
cd %work_path%
for /R %%s in (.) do (
echo %%s
)
pause

结果
D:/test/.
D:/test/A Folder 1/.
D:/test/A Folder 1/A file 1.txt
D:/test/A Folder 1/A file 2.txt
D:/test/A Folder 1/A file 3.txt
D:/test/B Folder 2/.
D:/test/B Folder 2/B file 1.txt
D:/test/B Folder 2/B file 2.txt
D:/test/B Folder 2/B file 3.txt
D:/test/B Folder 2/B Folder 3/.
D:/test/B Folder 2/B Folder 3/B sub file 1.txt
D:/test/B Folder 2/B Folder 3/B sub file 2.txt
D:/test/B Folder 2/B Folder 3/B sub file 3.txt

那么
代码如下:
for /R %%s in (.,*) do (
echo %%s
)


代码如下:
for /R %%s in (.) do (
echo %%s
)

的区别是什么呢?
在有cd %work_path% 的时候,这两个命令执行的结果是一样的,就像我们上面举的例子。但是
for /R %%s in (.,*) do (
echo %%s
)
的批处理中没有cd %work_path% ,那么显示的将是这个批处理文件所在文件夹下面的遍历结果。

代码如下:
@echo off
for /R "D:/test" %%s in (.) do (
echo %%s
)
pause

结果
D:/test/.
D:/test/A Folder 1/.
D:/test/B Folder 2/.
D:/test/B Folder 2/B Folder 3/.
代码如下:
@echo off
for /R "D:/test" %%s in (.,*) do (
echo %%s
)
pause

结果
D:/test/.
D:/test/A Folder 1/.
D:/test/A Folder 1/A file 1.txt
D:/test/A Folder 1/A file 2.txt
D:/test/A Folder 1/A file 3.txt
D:/test/B Folder 2/.
D:/test/B Folder 2/B file 1.txt
D:/test/B Folder 2/B file 2.txt
D:/test/B Folder 2/B file 3.txt
D:/test/B Folder 2/B Folder 3/.
D:/test/B Folder 2/B Folder 3/B sub file 1.txt
D:/test/B Folder 2/B Folder 3/B sub file 2.txt
D:/test/B Folder 2/B Folder 3/B sub file 3.txt
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表