中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-09 05:14
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助] 输出文本问题 查看 777 回复 12
楼 主 [求助] 输出文本问题 发表于 2008-07-12 16:45 ·  中国 山东 聊城 联通
初级用户
★★
积分 73
发帖 51
注册 2007-08-31 10:04
18年会员
UID 96241
性别 男
状态 离线
问题: 在你的D盘根目录下first文件夹中查找所有的TXT文件,并且以下面的格式保存。

d:\first\1.txt d:\first\2.txt d:\first\3.txt



谢谢。。。
2 发表于 2008-07-12 17:04 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
楼主是要以上面的格式保存*txt文件还是将结果保存为文件列表啊?
批处理之家新域名:www.bathome.net
3 发表于 2008-07-12 17:09 ·  中国 山东 聊城 联通
初级用户
★★
积分 73
发帖 51
注册 2007-08-31 10:04
18年会员
UID 96241
性别 男
状态 离线
不好意思,没有说清楚。是把他们以这种格式保存在 wenben.txt中。
4 发表于 2008-07-12 17:16 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
wenjian.txt一行保存四个:

@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /s /b d:\first\*.txt') do (
set /a n+=1,m+=1
>>wenjian.txt set /p=d:\first\!n!.txt <nul
if !m! equ 4 set m=0&echo.
)
批处理之家新域名:www.bathome.net
5 发表于 2008-07-12 17:22 ·  中国 山东 聊城 联通
初级用户
★★
积分 73
发帖 51
注册 2007-08-31 10:04
18年会员
UID 96241
性别 男
状态 离线
先表示感谢。
如果这些TXT文件没有规律呢? 比如有1.txt dir.txt 9a2.txt
6 发表于 2008-07-12 17:25 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
Originally posted by hackerscans at 2008-7-12 17:22:
先表示感谢。
如果这些TXT文件没有规律呢? 比如有1.txt dir.txt 9a2.txt

是一样的啊。
批处理之家新域名:www.bathome.net
7 发表于 2008-07-12 17:36 ·  中国 山东 聊城 联通
初级用户
★★
积分 73
发帖 51
注册 2007-08-31 10:04
18年会员
UID 96241
性别 男
状态 离线
我看了老半天才有点明白你的代码。看来我的批处理还是老菜啊。加油学啊


能讲解一下这句吗 >>wenjian.txt set /p=d:\first\!n!.txt <nul
这样没有参数%%i 也可以把文本文件写到wenjian.txt 中吗?


还有 for /f "delims=" %%i in ('dir /b /s d:\first\*.txt') do set /p=%%i <nul >>wenjian.txt
这句也可以实现把。

[ Last edited by hackerscans on 2008-7-12 at 05:53 PM ]
8 发表于 2008-07-12 17:51 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
4楼漏了一个重定向,导致所有结果都在一行。
致精致简!
9 发表于 2008-07-12 18:06 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
“所有结果都在一行”不正是楼主的需求吗?
10 发表于 2008-07-12 18:09 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
for /f "delims=" %%i in ('dir /b /s d:\first\*.txt') do set /p=%%i <nul >>wenjian.txt
是的,这个可以。区别在于4楼的代码可以设置每行有几个文件名。
11 发表于 2008-07-12 18:18 ·  中国 山东 聊城 联通
初级用户
★★
积分 73
发帖 51
注册 2007-08-31 10:04
18年会员
UID 96241
性别 男
状态 离线
为什么把重定向 放在最前面呢 >>wenjian.txt
12 to 11楼 发表于 2008-07-12 18:22 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
echo>1.txt 123
>>1.txt echo 123
echo 123>>1.txt
你试下这样三句。

zw前辈给你写的代码,四个一行的话,把>>wenjian.txt放在复合语句之外即可,紧跟")"
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
13 发表于 2008-07-12 18:53 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
Originally posted by HAT at 2008-7-12 18:06:
“所有结果都在一行”不正是楼主的需求吗?

可是4楼说明是4个一行啊?
致精致简!
论坛跳转: