Board logo

标题: [文件操作] 求助批处理取消深层次子目录读取 [打印本页]

作者: li500382    时间: 2020-5-10 17:23     标题: 求助批处理取消深层次子目录读取

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f %%t in ('dir /ad /b /s M:\未上') do (
  4. @cd %%t
  5. @for %%i in ("!cd!") do (
  6. @for /f "delims=" %%j in ('dir/b')do @echo %%~nj>>%%~ni.xls
  7. )
  8. )
  9. for /f "delims=" %%f in ('dir /s /b M:\未上\*.xls') do move "%%f" M:\1
  10. @echo 完毕,所有文件保存在“M:\1”中
  11. pause
复制代码
源代码能够识别到“M:\未上\”里面所有子目录的所有文件

现在只想要它只识别到如“M:\未上\张三\*.*”   “M:\未上\李四\*.*”

更深的如:“M:\未上\张三\AA\*.*”就不要了
作者: smss    时间: 2020-5-10 17:50

for /f "delims=" %%f in ('dir /s /b M:\未上\张三\* M:\未上\李四\*') do move "%%f" M:\1
作者: li500382    时间: 2020-5-10 18:18

回复 2# smss


    这个有很多文件夹的  张三 李四 只是个例子
而且这样它也会在子目录生成xls文件
作者: xp3000    时间: 2020-5-10 20:01

  1. @echo off&setlocal EnableDelayedExpansion
  2. MD "M:\1"
  3. @for /f "delims=" %%i in ('dir /a:d /B M:\未上\*') do (
  4.     for /f "delims=" %%j in ('dir /b/a-d/oN "%%i\*.*"') do (
  5.     echo move M:\未上\%%i\%%j M:\1\%%~nj.xls
  6.     )
  7. )
  8. pause
复制代码
移动文件并且修改文件类型?如果没错echo move的echo删除就可以了
作者: xp3000    时间: 2020-5-10 20:11

本帖最后由 xp3000 于 2020-5-10 20:12 编辑
  1. @echo off&setlocal EnableDelayedExpansion
  2. MD "M:\1"
  3. @for /f "delims=" %%i in ('dir /a:d /B M:\未上\*') do (
  4.     for /f "delims=" %%j in ('dir /b/a-d/oN "%%i\*.*"') do (
  5.     echo M:\未上\%%i\%%j
  6.     )>>M:\1\%%~ni.xls
  7. )
  8. pause
复制代码
要是仅仅提取文件名就这样
作者: li500382    时间: 2020-5-10 21:09

回复 5# xp3000


    是提取文件名 但是是提取 M:\未上\  下一级目录的文件名 如:“M:\未上\张飞\*.*”  不是提取 M:\未上  目录里面的文件名
作者: xp3000    时间: 2020-5-10 21:22

提取文件名上面的够了
作者: qixiaobin0715    时间: 2020-5-10 21:26

第一个for循环采用for /d是否可行?
作者: xp3000    时间: 2020-5-10 21:32

可以
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd M:\未上
  4. for /d %%a in (*) do (
  5. cd "%%a"
  6. for /f "delims=" %%b in ('dir /b/a-d/oN *.*') do (
  7. echo %%~nxb
  8. cd M:\未上
  9. )>>"M:\1\%%~na.xls"
  10. )
  11. pause
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2