当前位置:编程学习 > C#/ASP.NET >>

一段delete txt里空白的小代码

把下面的程序另存为bat,让后将txt拖入这个程序,就能在D盘下生成一个没有空行的这个txt,但是有个bug,如果txt有个空行里包含空格,这段代码就删不掉这个空行了,请问应该怎么修改?

@echo off 
set n=1 
:3  
if exist d:\new_%n%.txt (set /a n+=1&goto 3) 
set file=%1  
for /f "usebackq delims=" %%i in ("%file%") do ( 
echo.%%i >>d:\new_%n%
)  
echo 
处理完毕!
--------------------编程问答-------------------- 晕 没人回答我么???200分了啊 --------------------编程问答-------------------- 都快下班了。。 --------------------编程问答-------------------- 批处理。。。不会写   --------------------编程问答-------------------- 你用一下这个逻辑来处理。我建议这个地方应该用findstr,而不是for。


@echo off 
set file=%1  
findstr "[\s]" %file% >> d:\new_"%file%"


文件名的规则你参照你之前的逻辑即可。 --------------------编程问答-------------------- 用C#编写如下程序:
新建一个控制台:
void Main(string[] Args)
{
    System.IO.File.WriteAllLines(Args[1].Trim('\"'), System.IO.File.ReadAllLines(Args[0].Trim('\"')).Where(x => x.Trim() != "").ToArray());
}
编译成1.exe
调用
1.exe "c:\1.txt" "c:\2.txt" --------------------编程问答--------------------
引用 5 楼 caozhy 的回复:
用C#编写如下程序:
新建一个控制台:
void Main(string[] Args)
{
    System.IO.File.WriteAllLines(Args[1].Trim('\"'), System.IO.File.ReadAllLines(Args[0].Trim('\"')).Where(x => x.Trim() != "").ToArray());
}
编译成1.exe
调用
1.exe "c:\1.txt" "c:\2.txt"


额 我还是真没弄过这个控制台应用程序,请问直接生成就行,就能有这个1.exe么 --------------------编程问答--------------------
引用 4 楼 ffxfxl 的回复:
你用一下这个逻辑来处理。我建议这个地方应该用findstr,而不是for。


@echo off 
set file=%1  
findstr "[\s]" %file% >> d:\new_"%file%"


文件名的规则你参照你之前的逻辑即可。


我也是不会这个批处理啊,请问应该具体怎么修改啊? --------------------编程问答--------------------
引用 6 楼 generhappy 的回复:
Quote: 引用 5 楼 caozhy 的回复:

用C#编写如下程序:
新建一个控制台:
void Main(string[] Args)
{
    System.IO.File.WriteAllLines(Args[1].Trim('\"'), System.IO.File.ReadAllLines(Args[0].Trim('\"')).Where(x => x.Trim() != "").ToArray());
}
编译成1.exe
调用
1.exe "c:\1.txt" "c:\2.txt"


额 我还是真没弄过这个控制台应用程序,请问直接生成就行,就能有这个1.exe么

是的,VS新建一个C#控制台,贴进去就可以。 --------------------编程问答--------------------
引用 7 楼 generhappy 的回复:
Quote: 引用 4 楼 ffxfxl 的回复:

你用一下这个逻辑来处理。我建议这个地方应该用findstr,而不是for。


@echo off 
set file=%1  
findstr "[\s]" %file% >> d:\new_"%file%"


文件名的规则你参照你之前的逻辑即可。


我也是不会这个批处理啊,请问应该具体怎么修改啊?


好事做到底,把下面这个保存为bat,然后把要处理的文件拖过去就Ok了。

@echo off 
set n=1
set file=%1
:4
for /f "delims=" %%a in ("%file%") do (
set o=%%~dpna_%n%%%~xa
)
if exist "%o%" (set /a n+=1&goto 4)
for /f "delims=" %%a in ("%file%") do (
set o=%%~dpna_%n%%%~xa
)

findstr "[\s]" %file% >> "%o%"
echo 文件%file%处理后已另存为%o%。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,