中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-09 04:15
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 搜索D盘*.txt后再按文件名顺序(怎样忽略文件夹顺序呀) 查看 1,808 回复 15
楼 主 搜索D盘*.txt后再按文件名顺序(怎样忽略文件夹顺序呀) 发表于 2008-06-19 18:19 ·  中国 广东 深圳 电信
中级用户
★★
积分 358
发帖 130
注册 2005-11-12 16:29
20年会员
UID 45117
状态 离线
搜索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
2 发表于 2008-06-19 18:26 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
试下这个。。。
dir d:\*.txt /b/s/a-d/on
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
3 发表于 2008-06-19 18:29 ·  中国 广东 深圳 电信
中级用户
★★
积分 358
发帖 130
注册 2005-11-12 16:29
20年会员
UID 45117
状态 离线
Originally posted by pusofalse at 2008-6-19 18:26:
试下这个。。。
dir d:\*.txt /b/s/a-d/on


没有忽略文件夹顺序呀
怎样忽略文件夹顺序呀
4 发表于 2008-06-19 18:35 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
for %%a in (a b c d e f g) do dir d:\%%a.txt /b/s/a-d

无比低慢的代码,不过应该会满足你的要求。。
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
5 发表于 2008-06-19 18:50 ·  中国 广东 深圳 电信
中级用户
★★
积分 358
发帖 130
注册 2005-11-12 16:29
20年会员
UID 45117
状态 离线
Originally posted by pusofalse at 2008-6-19 18:35:
for %%a in (a b c d e f g) do dir d:\%%a.txt /b/s/a-d

无比低慢的代码,不过应该会满足你的要求。。


好像不行, D盘的txt文件名也并不确定
6 发表于 2008-06-19 18:57 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
你确定子目录下不会有重名的文件吗~?而且文件名全是字母?
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
7 发表于 2008-06-19 19:05 ·  中国 广东 深圳 电信
中级用户
★★
积分 358
发帖 130
注册 2005-11-12 16:29
20年会员
UID 45117
状态 离线
Originally posted by pusofalse at 2008-6-19 18:57:
你确定下不会有重名的文件吗~?而且文件名全是字母?



子目录不确定有重名的文件,而且文件名不全是字母,可能是中文+字母+数字甚至符号呀
8 发表于 2008-06-19 19:05 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
@echo off&setlocal enabledelayedexpansion
for /r d:\ %%a in (*.txt) do set "%%~na=%%a"
for %%a in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do if defined %%a echo !%%a!
pause>nul
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
9 发表于 2008-06-19 19:12 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
Originally posted by yywd at 2008-6-19 07:05 PM:



子目录不确定有重名的文件,而且文件名不全是字母,可能是中文+字母+数字甚至符号呀


Oh my god....

那你想要输出时,字母在最前面?然后数字,再后中文。。。
还是中文最前,数字最后?~

中文实在是不好考虑。。。。
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
10 发表于 2008-06-19 19:42 ·  中国 广东 深圳 电信
中级用户
★★
积分 358
发帖 130
注册 2005-11-12 16:29
20年会员
UID 45117
状态 离线
Originally posted by pusofalse at 2008-6-19 19:12:


Oh my god....

那你想要输出时,字母在最前面?然后数字,再后中文。。。
还是中文最前,数字最后?~

中文实在是不好考虑。。。。

输出时数字在最前面,然后字母,再后中文。。。
11 发表于 2008-06-19 19:49 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
@echo off&setlocal enabledelayedexpansion
for /r d:\ %%a in (*.txt) do set "#%%~na=%%a"
for /f "tokens=2 delims==" %%a in ('set #') do echo %%a
pause>nul

输出类似于:
1
2
a
b
c
d
dp
dp23
dpa
DP
e
f
汉字
....

[ Last edited by pusofalse on 2008-6-19 at 07:53 PM ]
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
12 发表于 2008-06-19 19:59 ·  中国 福建 福州 连江县 电信
中级用户
★★
积分 356
发帖 115
注册 2004-07-27 00:00
22年会员
UID 29114
性别 男
状态 离线
@echo off
if exist "%temp%\list.txt" del /f/a/q "%temp%\list.txt"
for /r d: %%i in (*.txt) do echo %%~ni\%%i>>"%temp%\list.txt"
for /f "tokens=1* delims=\" %%i in ('more %%temp%%\list.txt^|sort') do echo %%j>>list.txt
del /f/a/q "%temp%\list.txt"
pause
13 发表于 2008-06-19 20:08 ·  中国 广东 深圳 电信
中级用户
★★
积分 358
发帖 130
注册 2005-11-12 16:29
20年会员
UID 45117
状态 离线
Originally posted by pusofalse at 2008-6-19 19:49:
@echo off&setlocal enabledelayedexpansion
for /r d:\ %%a in (*.txt) do set "#%%~na=%%a"
for /f "tokens=2 delims==" %%a in ('set #') do echo %%a
pause>nul

输出类似 ...


谢谢您的热心帮助, 这个可以用的
14 发表于 2008-06-19 20:11 ·  中国 广东 深圳 电信
中级用户
★★
积分 358
发帖 130
注册 2005-11-12 16:29
20年会员
UID 45117
状态 离线
Originally posted by balinger at 2008-6-19 19:59:
@echo off
if exist "%temp%\list.txt" del /f/a/q "%temp%\list.txt"
for /r d: %%i in (*.txt) do echo %%~ni\%%i>>"%temp%\list.txt"
for /f "tokens=1* delims= ...


谢谢您的热心帮助,您 这个也可以用的
15 发表于 2008-06-19 20:51 ·  法国 奥弗涅-罗讷-阿尔卑斯 里昂大都会 里昂
高级用户
★★
积分 783
发帖 268
注册 2006-12-26 17:18
19年会员
UID 74627
性别 男
状态 离线
小写了一行 不知是否楼住所要求的 只是将文件名 放在了路径前边 比较快

(for /r d:\ %i in (*.txt) do echo %~nxi %~si)|sort /o d:/cn-dos.txt
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
WANKOILZ +1 2008-06-19 23:14
菩提本无树,明镜亦非台,本来无一物,何处惹尘埃.
论坛跳转: