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

[文件操作] [已解决]批处理如何获取给定文件夹子目录中的所有文件?

本帖最后由 zhangzhi 于 2015-8-11 14:26 编辑

请大神帮忙!写个bat读取给定路径文件夹下所有子目录的文件名,并输出到content.txt里
比如给定E:\a
子目录有E:\a\b1\test.txt ; E:\a\test1.txt
我想要的结果是
/test1.txt
/b1/test.txt
搜到有这么写的,但是如何输出到把路径保存到content.txt呢
  1. @echo off setlocal enabledelayedexpansion
  2. for /r %%i in (*.*) do (
  3. set s=%%i
  4. set s=!s:%~dp0=!
  5. echo !s!)
复制代码

本帖最后由 pcl_test 于 2015-7-29 12:39 编辑
  1. @echo off
  2. cd /d "E:\a\"
  3. >"content.txt" findstr /ms . *.*
  4. pause
复制代码
1

评分人数

    • zhangzhi: 非常感谢你的回复,可以读出路径,如果我想 ...技术 + 1

TOP

本帖最后由 flyinnet9 于 2015-7-29 14:03 编辑

放到e:\a
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set p=%cd%
  4. for /f "tokens=1 delims=" %%a in ('dir /s /b /a-d *.*') do (
  5. set "f=%%a"
  6. set "f=!f:%p%=!"
  7. set "f=!f:\=/!"
  8. echo !f! >>content.txt
  9. )
复制代码

TOP

非常感谢2楼3楼的回复
试了一下
2楼的好用
3楼的没有获取到路径
如果我想在原来的基础上排除某中文件
比如排除*.meta
这个应该怎么处理

TOP

回复 2# pcl_test


    非常感谢
   可以读出路径
   我想排除其中的*.meta怎么处理呢

TOP

本帖最后由 pcl_test 于 2015-7-29 15:25 编辑

回复 5# zhangzhi
改一句
  1. >"content.txt" (findstr /ms . *.*|findstr /iv "\.meta$")
复制代码

TOP

回复 6# pcl_test


    我试了
还是不行
还是没有排除掉.meta结尾的文件

TOP

回复 7# zhangzhi

6楼已改

TOP

回复 8# pcl_test


    .meta排除掉了
非常感谢
不过还有一点点和我说的不一样
/test1.txt
/b1/test.txt
我的最前面有个 /
最好把这个加上
麻烦你了

TOP

为什么我用findstr取不到路径,win8

TOP

回复 10# flyinnet9

findstr  /ms取得是相对路径,你当前目录都已经在D:\Script\test了

TOP

回复 11# pcl_test

帮看下我9楼说的那个呗
那个好解决吗?

TOP

回复 11# pcl_test


    ‘吓一跳,还以为我机器有问题

TOP

本帖最后由 pcl_test 于 2015-7-29 16:31 编辑

回复 12# zhangzhi
  1. @echo off
  2. @echo off&setlocal enabledelayedexpansion
  3. cd /d "E:\a\"
  4. (for /f "delims=" %%a in ('findstr /ms . *.*^|findstr /iv "\.meta$"') do (
  5.     set str=%%a
  6.     echo;/!str:\=/!))>"content.txt"
  7. pause
复制代码

TOP

回复 14# pcl_test


实在不好意思
发现个严重问题
/test1.txt
/b1/test.txt
我要的这种类型的/而不是\
你最后回复的那个其它的都正确
就差这个

TOP

返回列表