中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [分享]批量导出当前目录的所有文本内容
作者:
标题: [分享]批量导出当前目录的所有文本内容 上一主题 | 下一主题
gool123456
初级用户




积分 89
发帖 76
注册 2009-12-13
状态 离线
『楼 主』:  [分享]批量导出当前目录的所有文本内容

@echo off
cd.>_bat.txt
for %%c in (*.*) do (
set nc=%%c
if "!nc!"=="%~nx0" goto b
echo ------------------ >>_bat.txt
echo  %%c: >>_bat.txt
echo. >>_bat.txt
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in (%%c) do (
set mu=%%i
if not !mu!=="" echo %%i>>_bat.txt
  )
:b
echo.
)
echo ------------------ >>_bat.txt
echo. >>_bat.txt
echo  %~nx0 >>_bat.txt
type %~xn0 >>_bat.txt
pause

没有在论坛里发过分享贴,今天有空就写了这么东西
就拿出来分享了呵

希望高手以后多点照顾下我们这些新人..:D

2010-4-12 17:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 2 楼』:  

if not !mu!=="" echo %%i>>_bat.txt
应该写成if not "!mu!"=="" >>_bat.txt echo %%i

[ Last edited by Hanyeguxing on 2010-4-12 at 17:34 ]



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-4-12 17:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
gool123456
初级用户




积分 89
发帖 76
注册 2009-12-13
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by Hanyeguxing at 2010-4-12 17:32:
if not !mu!=="" echo %%i>>_bat.txt
应该写成if not "!mu!"=="" >>_bat.txt echo %%i

[ Last edited by Hanyeguxing on 2010-4-12 at 17:34 ]

恩 这样才能取整行做比较.

2010-4-12 17:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 4 楼』:  

既然你在批处理中使用了%~xn0,那么显然你要处理的文件中就包括批处理。
那么如果处理这些文本内容中的敏感字符呢?例如~!@#$%^&*()_=+|\/[]{};':"<>?,.等等?



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-4-12 18:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
gool123456
初级用户




积分 89
发帖 76
注册 2009-12-13
状态 离线
『第 5 楼』:  

测试内容有敏感字符可以通过呀。.
起前使用了就是包括了批处理本身,就发生了错误,后来才用if "!nc!"=="%~nx0" goto b
把本身排除在外最后把自身放在代码最后那单独处理了。
echo ------------------ >>_bat.txt
echo. >>_bat.txt
echo  %~nx0 >>_bat.txt
type %~xn0 >>_bat.txt
pause

2010-4-12 21:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 6 楼』:  

1,for %%c in (*.*) do 时,会包括_bat.txt的,即造成_bat.txt中的内容重复。
2,除了批处理自身以外,其他文件也会包含敏感字符的。
3,if "!nc!"=="%~nx0" goto b用goto b把for 循环终止了?

[ Last edited by Hanyeguxing on 2010-4-13 at 18:47 ]



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-4-13 18:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
gool123456
初级用户




积分 89
发帖 76
注册 2009-12-13
状态 离线
『第 7 楼』:  

这段代码确实有问题 !但不知道哪出错了。。

2010-4-15 03:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: