标题: [文件操作] 求助批处理取消深层次子目录读取 [打印本页]
作者: li500382 时间: 2020-5-10 17:23 标题: 求助批处理取消深层次子目录读取
- @echo off
- setlocal enabledelayedexpansion
- for /f %%t in ('dir /ad /b /s M:\未上') do (
- @cd %%t
- @for %%i in ("!cd!") do (
- @for /f "delims=" %%j in ('dir/b')do @echo %%~nj>>%%~ni.xls
- )
- )
- for /f "delims=" %%f in ('dir /s /b M:\未上\*.xls') do move "%%f" M:\1
- @echo 完毕,所有文件保存在“M:\1”中
- 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
- @echo off&setlocal EnableDelayedExpansion
- MD "M:\1"
- @for /f "delims=" %%i in ('dir /a:d /B M:\未上\*') do (
- for /f "delims=" %%j in ('dir /b/a-d/oN "%%i\*.*"') do (
- echo move M:\未上\%%i\%%j M:\1\%%~nj.xls
- )
- )
- pause
复制代码
移动文件并且修改文件类型?如果没错echo move的echo删除就可以了
作者: xp3000 时间: 2020-5-10 20:11
本帖最后由 xp3000 于 2020-5-10 20:12 编辑
- @echo off&setlocal EnableDelayedExpansion
- MD "M:\1"
- @for /f "delims=" %%i in ('dir /a:d /B M:\未上\*') do (
- for /f "delims=" %%j in ('dir /b/a-d/oN "%%i\*.*"') do (
- echo M:\未上\%%i\%%j
- )>>M:\1\%%~ni.xls
- )
- 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
可以- @echo off
- setlocal enabledelayedexpansion
- cd M:\未上
- for /d %%a in (*) do (
- cd "%%a"
- for /f "delims=" %%b in ('dir /b/a-d/oN *.*') do (
- echo %%~nxb
- cd M:\未上
- )>>"M:\1\%%~na.xls"
- )
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |