2013-04-17 143 views
2

要删除一个空格(包括空行)开始一个txt文件,我写删除从文件开始用空格线,包括空行

findstr /v /b /c:" " <%1>result.out. 

事实上的所有行,result.out文件如果在每行的开头和空行都不再有空格,请为我解答。

我所做的仍然是将行标题留空,它也保留了空白行,我想放弃。最后,result.out输出必须包含连续的行,每行始终包含一个文本。

请有人能告诉我它是什么错误,以及如何解决这个问题? 谢谢。

+0

有什么不当有关它的工作? – rojo

+0

我所做的仍然是将行标题留空,它还保留了我想放弃的空白行。最后,result.out输出必须包含连续的行,每行始终包含一个文本。 – new

回答

4

如果要包含选项卡作为要检查的空白字符的一部分,必须使用批处理脚本。如果您尝试选项卡或将选项卡字符粘贴到控制台,则cmd控制台只会在您身上发出恼人的声音。但cmd解释标签.bat文件没有问题。

将这个变成一个批处理文件并运行它,与实际空间和标签更换空间标签

findstr /r /v /c:"^[空间标签]" /c:"^$" "%~1" >result.out

第一/c:检查在一行的开头的空格。第二个/c:检查空白行。 /v开关均省略。

+0

你很好!非常完美非常感谢大家。我是批量新的,但通过“Stackoverflow”论坛,我真的了解很多东西;)谢谢! – new

+0

@新 - 非常好。我很高兴它为你工作。如果您同意这是适当的,请考虑[标记我的答案为已接受](http://meta.stackexchange.com/a/5235/187716)。 – rojo

0
@ECHO OFF 
SETLOCAL 
CALL CMD /c EXIT 26 
(
FOR /f "eol=%=ExitCodeAscii% delims=" %%i IN ('findstr /v /b /c:" " ^<%1') DO ECHO %%i 
)>result.out 

应该删除空白行。

FOR读取FINDSTR删除了所有带尾随空格的行后出现的每一行文件。任何空洞的谎言都会被丢弃,并且整条线被应用于%%因为没有分隔符。

通过设置结束行的字符来控制-Z,有没有有效结束线两种,因此,所有非空行是ECHO