|
zhengruijian
初级用户
积分 54
发帖 24
注册 2008-5-30
状态 离线
|
『楼 主』:
N多文件进行批量的固定长度回车并删掉空格的问题
跪求大侠,我实在是搞不定了.请你们帮忙啊!!!!多谢了!!!..
请大侠指点迷津!
我想对一个文件夹下的所有文件进行固定字符长度的回车.(30个汉字的长度)
在整理完长度后把里面的空格行全都删除掉.再保存,原文件名不变.
应该怎么做啊?
多谢啦!!!!!!!!!!!!
我只找到了下面这个程序只能执行一个文件,而且还不能保存.
@echo off
for /f "delims=" %%a in (yourtext.txt) do (
set var=%%a
setlocal enabledelayedexpansion
set var=!var: =!
if not "!var!"=="" set var=!var: =!
if not "!var!"=="" echo !var!
endlocal
)
pause
我要处理的范文如下 :
8、 I Apologize.
我很抱歉。
A: Jessie, I’m afraid I can’t come back home for dinner tonight.
杰茜,我恐怕今晚不能回家吃晚饭了。
B: Not back home for dinner again? That’s the third time this week!
又不回家吃晚饭?这个星期你已经是第三次了这样了!
A: I’m sorry. Our company has just opened. There are always too many things to handle. You know that.
对不起。我们的公司刚刚开业,总是有太多事情要处理,这你是知道的。
B: You don’t have to explain. Suit yourself.
你不必解释了。随便你。
A: I apologize. You have my word, I’ll spend some time with you on the weekend. I promise.
很抱歉。我向你保证,周末抽时间来陪你。我发誓。
B: We’ll see.
再说吧。
A: Thank you for understanding. I promise I’ll make it up to you.
谢谢你能理解。我保证一定给你补上。
A: Sam, you’ve got to forgive me.
山姆,你得原谅我。
B: Forgive you for what?
原谅你什么?
A: I used your computer. And I’m afraid I’ve erased your personal files accidentally.
我用了你的电脑。恐怕我不小心把你的私人文件删掉了。
B: No! Are you kidding me?
不!你跟我开玩笑?
A: I’m afraid not. I apologize.
不是。我很抱歉。
B: I can’t believe it! I have all my important personal documents stored in that computer. It’s no laughing matter.
我简直不敢相信!我将所有重要的私人资料都存入电脑了。这可不是闹着玩的。
A: I told you I’m sorry. What can I do to make it up to you?
我都跟你道歉了。我怎样做才能弥补我的过错?
B: Well, you should be sorry! Don’t ever use my computer again! You can’t do anything now, it’s too late!
你应该道歉!再也不许用我的电脑了!现在你做什么都没有用了,已经太迟了!
|
|
2008-6-1 12:48 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
2 楼』:
findstr好像有空行过滤吧
|
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore |
|
2008-6-1 14:26 |
|
|
moniuming
银牌会员
永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『第
3 楼』:
楼上有笔误吧,for才过滤空行
@echo off
::放在要处理的目录里运行
::不能处理汉字(即无论汉字或英文, 超过60个才能处理)
::注意: 非空格行不能以空格开头
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b/a-d "*.txt"') do (
type nul>temp.txt
for /f "delims=" %%m in ('type "%%i"') do (
set "str=%%m"
if "!str:~0,1!"==" " (set "str=!str: =!") else (call :cut)
)
move /y temp.txt "%%i"
)
goto :eof
:cut
set "var=%str:~0,60%"
>>temp.txt echo %var%
set str=%str:~60%
if not "%str%"=="" goto :cut
|
|
2008-6-1 16:12 |
|
|
clonecd
初级用户
积分 94
发帖 46
注册 2006-5-14
状态 离线
|
『第
4 楼』:
标题说删除空格,文章里面说删除空格行,一开始还真不知道是什么意思。
[ Last edited by clonecd on 2008-6-1 at 04:57 PM ]
|
|
2008-6-1 16:55 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
5 楼』:
因为有中英文 我是这样处理的:
汗我以为要删空格 改吧
@echo off
for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
for /f "delims=" %%a in ('more "%%i"') do (
set var=%%a
setlocal enabledelayedexpansion
call :lp
endlocal
)
move /y temp_.txt "%%i"
)
pause&goto :eof
:lp
if not defined var goto :eof
if "%var:~,1%"==" " set var=%var:~1%&goto lp
if "%var:~,1%"==" " set var=%var:~1%&goto lp
if "%var:~,1%" gtr "Z" (
:lp1
if defined var >>temp_.txt echo %var:~,30%&set var=%var:~30%&goto lp1
goto :eof
) else (
:lp2
if defined var (>>temp_.txt echo !var:~,60!&set var=%var:~60%&goto lp2)) [ Last edited by terse on 2008-6-1 at 05:50 PM ]
|
简单!简单!再简单! |
|
2008-6-1 17:08 |
|
|
moniuming
银牌会员
永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『第
6 楼』:
to:5楼
运行结果:
把最后一个括号去掉后没有提示,直接退出.
Quote: | E:\games\test>1
E:\games\test>for /F "delims=" %i in ('dir /b /a-d *.txt') do (
for /F "delims=" %a in ('more "%i"') do (
set var=%a
setlocal enabledelayedexpansion
call :lp
endlocal
)
move /y temp_.txt "%i"
)
E:\games\test>(
for /F "delims=" %a in ('more "1.txt"') do (
set var=%a
setlocal enabledelayedexpansion
call :lp
endlocal
)
move /y temp_.txt "1.txt"
)
E:\games\test>(
set var=B: We’ll see.
setlocal enabledelayedexpansion
call :lp
endlocal
)
E:\games\test>if not defined var goto :eof
E:\games\test>if "B" == " " set var=: We’ll see. & goto lp
E:\games\test>if "B" == " " set var=: We’ll see. & goto lp
E:\games\test>
E:\games\test> |
|
[ Last edited by moniuming on 2008-6-1 at 07:55 PM ]
|
|
2008-6-1 19:54 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
7 楼』:
=。=我没有打错。。。
@echo off
findstr "." Slore.txt>erolS.txt
::下面的空格数你自己可以多打点,按你的格式
::来看连续这么多空格应该够了。
findstr /v /c:" " erolS.txt>Slore.txt
echo 处理完毕!
pause>nul
[ Last edited by slore on 2008-6-1 at 08:55 PM ]
|
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore |
|
2008-6-1 20:49 |
|
|
zhengruijian
初级用户
积分 54
发帖 24
注册 2008-5-30
状态 离线
|
『第
8 楼』:
谢谢各位大哥的帮助.
用了达人的这个代码处理得很好,只是不能处理汉字,英文倒是排得好好的.不知道怎么样能做成处理汉字的?就是说30个汉字的长度也换行.下面的代码该如何改善一下才能做到呢?
@echo off
::放在要处理的目录里运行
::不能处理汉字(即无论汉字或英文, 超过60个才能处理)
::注意: 非空格行不能以空格开头
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b/a-d "*.txt"') do (
type nul>temp.txt
for /f "delims=" %%m in ('type "%%i"') do (
set "str=%%m"
if "!str:~0,1!"==" " (set "str=!str: =!") else (call :cut)
)
move /y temp.txt "%%i"
)
goto :eof
:cut
set "var=%str:~0,60%"
>>temp.txt echo %var%
set str=%str:~60%
if not "%str%"=="" goto :cut
我用上面这个程序把范文处理后是这样的:
8、 I Apologize.
我很抱歉。
A: Jessie, I’m afraid I can’t come back home for dinner toni
ght.
杰茜,我恐怕今晚不能回家吃晚饭了。
B: Not back home for dinner again? That’s the third time thi
s week
又不回家吃晚饭?这个星期你已经是第三次了这样了!
A: I’m sorry. Our company has just opened. There are always
too many things to handle. You know that.
对不起。我们的公司刚刚开业,总是有太多事情要处理,这你是知道的。
B: You don’t have to explain. Suit yourself.
你不必解释了。随便你。
A: I apologize. You have my word, I’ll spend some time with
you on the weekend. I promise.
很抱歉。我向你保证,周末抽时间来陪你。我发誓。
B: We’ll see.
再说吧。
A: Thank you for understanding. I promise I’ll make it up to
you.
谢谢你能理解。我保证一定给你补上。
A: Sam, you’ve got to forgive me.
山姆,你得原谅我。
B: Forgive you for what?
原谅你什么?
A: I used your computer. And I’m afraid I’ve erased your per
sonal files accidentally.
我用了你的电脑。恐怕我不小心把你的私人文件删掉了。
B: No Are you kidding me?
不!你跟我开玩笑?
A: I’m afraid not. I apologize.
不是。我很抱歉。
B: I can’t believe it I have all my important personal docum
ents stored in that computer. It’s no laughing matter.
我简直不敢相信!我将所有重要的私人资料都存入电脑了。这可不是闹着玩的。
A: I told you I’m sorry. What can I do to make it up to you?
我都跟你道歉了。我怎样做才能弥补我的过错?
B: Well, you should be sorry You can’t do anything now, it’s
too late
你应该道歉!再也不许用我的电脑了!现在你做什么都没有用了,已经太迟了!
|
|
2008-6-1 20:56 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
9 楼』:
。。。原来是这个意思。。。一个汉字算2个字节还是要怎么样呀?
|
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore |
|
2008-6-1 21:00 |
|
|
zhengruijian
初级用户
积分 54
发帖 24
注册 2008-5-30
状态 离线
|
『第
10 楼』:
@echo off
::放在要处理的目录里运行
::不能处理汉字(即无论汉字或英文, 超过60个才能处理)
::注意: 非空格行不能以空格开头
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b/a-d "*.txt"') do (
type nul>temp.txt
for /f "delims=" %%m in ('type "%%i"') do (
set "str=%%m"
if "!str:~0,1!"==" " (set "str=!str: =!") else (call :cut)
)
move /y temp.txt "%%i"
)
goto :eof
:cut
set "var=%str:~0,30%"
>>temp.txt echo %var%
set str=%str:~30%
if not "%str%"=="" goto :cut
这个程序扩展性不错啊.我把里面的60全改为30后,处理成如下这个样子,可是英文看起来是真的很不爽啊.一句话搞成了好几行.
我想好好排下版的目的就是把这些文本做成LRC的歌词格式.我有配套的MP3.如果做好了哪位兄弟要的话,我可以传给你们啊.大家相互帮忙一下啊!
哪位大哥能把这个程序改善下啊.就是排版出来都是30个汉字长度才回车.那样大家都看得舒服些.
8、 I Apologize.
我很抱歉。
A: Jessie, I’m afraid I can’t
come back home for dinner toni
ght.
杰茜,我恐怕今晚不能回家吃晚饭了。
B: Not back home for dinner ag
ain? That’s the third time thi
s week
又不回家吃晚饭?这个星期你已经是第三次了这样了!
A: I’m sorry. Our company has
just opened. There are always
too many things to handle. You
know that.
对不起。我们的公司刚刚开业,总是有太多事情要处理,这你是知道
的。
B: You don’t have to explain.
Suit yourself.
你不必解释了。随便你。
A: I apologize. You have my wo
rd, I’ll spend some time with
you on the weekend. I promise.
很抱歉。我向你保证,周末抽时间来陪你。我发誓。
B: We’ll see.
再说吧。
A: Thank you for understanding
. I promise I’ll make it up to
谢谢你能理解。我保证一定给你补上。
A: Sam, you’ve got to forgive
me.
山姆,你得原谅我。
B: Forgive you for what?
原谅你什么?
A: I used your computer. And I
’m afraid I’ve erased your per
sonal files accidentally.
我用了你的电脑。恐怕我不小心把你的私人文件删掉了。
B: No Are you kidding me?
不!你跟我开玩笑?
A: I’m afraid not. I apologize
.
不是。我很抱歉。
B: I can’t believe it I have a
ll my important personal docum
ents stored in that computer.
It’s no laughing matter.
我简直不敢相信!我将所有重要的私人资料都存入电脑了。这可不是
闹着玩的。
A: I told you I’m sorry. What
can I do to make it up to you?
我都跟你道歉了。我怎样做才能弥补我的过错?
B: Well, you should be sorry Y
ou can’t do anything now, it’s
你应该道歉!再也不许用我的电脑了!现在你做什么都没有用了,已
经太迟了!
|
|
2008-6-1 21:12 |
|
|
zhengruijian
初级用户
积分 54
发帖 24
注册 2008-5-30
状态 离线
|
『第
11 楼』:
忘了说了,上面的范文是疯狂英语里面的一篇..希望大家帮忙,我想学好英语.
[ Last edited by zhengruijian on 2008-6-1 at 09:21 PM ]
|
|
2008-6-1 21:14 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
12 楼』:
Quote: | Originally posted by moniuming at 2008-6-1 19:54:
to:5楼
运行结果:
把最后一个括号去掉后没有提示,直接退出.
[ Last edited by moniuming on 2008-6-1 at 07:55 PM ] |
|
怎么回事 我这里可以的嘛
下面是处理后的:
8、 I Apologize.
我很抱歉。
A: Jessie, I’m afraid I can’t come back home for dinner tonight.
杰茜,我恐怕今晚不能回家吃晚饭了。
B: Not back home for dinner again? That’s the third time this week!
又不回家吃晚饭?这个星期你已经是第三次了这样了!
A: I’m sorry. Our company has just opened. There are always too many things to handle. You know that.
对不起。我们的公司刚刚开业,总是有太多事情要处理,这你是知道的。
B: You don’t have to explain. Suit yourself.
你不必解释了。随便你。
A: I apologize. You have my word, I’ll spend some time with you on the weekend. I promise.
很抱歉。我向你保证,周末抽时间来陪你。我发誓。
B: We’ll see.
再说吧。
A: Thank you for understanding. I promise I’ll make it up to you.
谢谢你能理解。我保证一定给你补上。
A: Sam, you’ve got to forgive me.
山姆,你得原谅我。
B: Forgive you for what?
原谅你什么?
A: I used your computer. And I’m afraid I’ve erased your personal files accidentally.
我用了你的电脑。恐怕我不小心把你的私人文件删掉了。
B: No! Are you kidding me?
不!你跟我开玩笑?
A: I’m afraid not. I apologize.
不是。我很抱歉。
B: I can’t believe it! I have all my important personal documents stored in that computer. It’s no laughing matter.
我简直不敢相信!我将所有重要的私人资料都存入电脑了。这可不是闹着玩的。
A: I told you I’m sorry. What can I do to make it up to you?
我都跟你道歉了。我怎样做才能弥补我的过错?
B: Well, you should be sorry! Don’t ever use my computer again! You can’t do anything now, it’s too late!
你应该道歉!再也不许用我的电脑了!现在你做什么都没有用了,已经太迟了!
|
简单!简单!再简单! |
|
2008-6-1 22:09 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
13 楼』:
?貌似没有除了的样子呀=。=
|
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore |
|
2008-6-1 22:15 |
|
|
moniuming
银牌会员
永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
|
2008-6-1 22:28 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
15 楼』:
我刚才 发出来怎么这样啊 这样呢
8、 I Apologize.
我很抱歉。
A: Jessie, I’m afraid I can’t come back home for dinner toni
ght.
杰茜,我恐怕今晚不能回家吃晚饭了。
B: Not back home for dinner again? That’s the third time thi
s week
又不回家吃晚饭?这个星期你已经是第三次了这样了!
A: I’m sorry. Our company has just opened. There are always
too many things to handle. You know that.
对不起。我们的公司刚刚开业,总是有太多事情要处理,这你是知道
的。
B: You don’t have to explain. Suit yourself.
你不必解释了。随便你。
A: I apologize. You have my word, I’ll spend some time with
you on the weekend. I promise.
很抱歉。我向你保证,周末抽时间来陪你。我发誓。
B: We’ll see.
再说吧。
A: Thank you for understanding. I promise I’ll make it up to
you.
谢谢你能理解。我保证一定给你补上。
A: Sam, you’ve got to forgive me.
山姆,你得原谅我。
B: Forgive you for what?
原谅你什么?
A: I used your computer. And I’m afraid I’ve erased your per
sonal files accidentally.
我用了你的电脑。恐怕我不小心把你的私人文件删掉了。
B: No! Are you kidding me?
不!你跟我开玩笑?
A: I’m afraid not. I apologize.
不是。我很抱歉。
B: I can’t believe it! I have all my important personal docu
ments stored in that computer. It’s no laughing matter.
我简直不敢相信!我将所有重要的私人资料都存入电脑了。这可不是
闹着玩的。
A: I told you I’m sorry. What can I do to make it up to you?
我都跟你道歉了。我怎样做才能弥补我的过错?
B: Well, you should be sorry! Don’t ever use my computer aga
in
|
简单!简单!再简单! |
|
2008-6-1 22:33 |
|