标题: [文件操作] 批处理搜索D盘txt后再按文件名顺序排序怎样忽略文件夹顺序? [打印本页]
作者: yywd 时间: 2008-6-19 19:31 标题: 批处理搜索D盘txt后再按文件名顺序排序怎样忽略文件夹顺序?
搜索D盘*.txt后再按文件名顺序(怎样忽略文件夹顺序呀)
搜索*.txt后再按文件名顺序(忽略文件夹顺序)排序写入完整路径到1.txt
怎样忽略文件夹顺序呀
例如D盘有
D:\b.txt
D:\d.txt
D:\1\c.txt
D:\1\f.txt
D:\2\1\a.txt
D:\2\1\g.txt
D:\2\1\1\e.txt
则1.txt如下
D:\2\1\a.txt
D:\b.txt
D:\1\c.txt
D:\d.txt
D:\2\1\1\e.txt
D:\1\f.txt
D:\2\1\g.txt
作者: batman 时间: 2008-6-20 02:55 标题: 暂时只想到个生成临时文件的办法
- @echo off
- for /f "delims=" %%i in ('dir /s /a-d /b d:\*.txt') do echo %%~nxi>>temp1.txt&echo %%i>>temp2.txt
- for /f "delims=" %%i in ('type temp1.txt^|sort') do findstr "%%i" temp2.txt>>1.txt
- del /q temp*.txt&start 1.txt
复制代码
[ 本帖最后由 zw19750516 于 2008-6-20 03:11 编辑 ]
作者: namejm 时间: 2008-6-20 08:41
发现CN-DOS的PPdos写了一段比较简洁的代码,但是结果是用短文件名,并且还带有多余的信息(没有把参与排序用的文件名过滤调),如果把那段代码放在其他路径下执行时,还会把当前路径信息写入结果。我就把他的代码完善一下吧,下面的代码能兼容路径带英文感叹号的情况,还能查找影藏的txt文件,缺点是生成了临时文件:- @echo off
- cd.>e:\tmp.txt
- for /f "delims=" %%i in ('dir /a-d /b /s d:\*.txt 2^>nul') do (
- setlocal enabledelayedexpansion
- set "str=%%~nxi|%%i"
- echo !str!>>e:\tmp.txt
- endlocal
- )
- cd.>e:\list.txt
- for /f "delims=| tokens=1*" %%i in ('sort e:\tmp.txt') do (
- setlocal enabledelayedexpansion
- set "str=%%j"
- echo !str!>>e:\list.txt
- endlocal
- )
- del /q e:\tmp.txt
- start e:\list.txt
复制代码
作者: 踏沙行 时间: 2018-7-12 09:58
- @echo off
- (for /r %%a in (*.txt) do @echo %%~na.%%~xa) |sort
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |