2011-06-23 112 views
1

我有一个批处理脚本,只将具有特定字符串的行复制到另一个文件。有时线条会变长。我使用FINDSTR批处理命令截断文件

FINDSTR /我 “串” 文件1>文件2

做此操作。但在结果文件中,它将行截断为1024个字符。在dos编程中是否有任何限制,文本文件行应该只有这么多长度?如果有这样的限制,那么是否有我们可以设置来覆盖此行为。

干杯,PK

+0

可能问题是与使用来显示程序/过程'file2'。你如何确定它的行被截断? –

+0

如果使用类型file1> file2,它会这样做吗? –

+0

我的java程序正在处理file2并抛出错误。当我使用写字板打开时,我可以看到它被截断。 – Anoop

回答

3

我不知道是否有特定的限制findstr。对于它的价值,我在XP SP3下的版本可以正常工作至少2000字符的行(a)

如果您的在某些方面有缺陷。您可能需要考虑从GnuWin32(搜索软件包列表中的grep)下载CygWingrep工具,然后使用它替代。但正如我所说,根据我的经验,这不应该是。


的(a)我创建了一个单行文件与2000个字符(重复的1234567890序列),然后:

C:\Pax> \cygwin\bin\wc xyz.txt 
    1 1 2002 xyz.txt 

C:\Pax> findstr /i "123" xyz.txt >xyz2.txt 

C:\Pax> \cygwin\bin\wc xyz2.txt 
    1 1 2002 xyz2.txt 
+0

这个批处理脚本在我们的服务器上运行,没有安装cygwin或GnuWin32,不幸的是我们也没有安装它们的权限。 :' - ( – Anoop

+0

是pax,它工作,但如果你使用find而不是findstr它仍然不起作用。:-) – Anoop