2013-07-24 73 views
0

我试图编写执行命令行文件的批处理文件,该文件输出一个大的XML文件。 xml文件包含我要删除的换行符或回车符的唯一字符,然后在完成时将其写入文件。 我知道如何通过'>'将输出重定向到一个文件: 因此,我可以输出我的命令结果到如下文件: exec.exe [args]> file.txt 问题是我想删除\ R,\ n的吧,所以我想将文件导出到一个变量,然后将它写入在end..I一个文件中找到此功能:作为命令执行输出的字符串的批处理

FOR /F "tokens=*" %A IN ('exec.exe [args]') DO SET Variable=%A 

,然后再进行以下操作:

set A=%A:\r=% 
set A=%A:\n=% 

然后将A的内容写入文件。 当然,这不起作用,这就是为什么我在这里。 它适用于测试目的,我设置一个短字符串或'回声..'来测试函数,但我的程序输出可能包含特殊字符,所以它不能很好地工作。 输出包含<?xml version="1.0" encod但是当我看命令行中的输出时,我看到: ■< ? x m l v e r s i o n = " 1 . 0 "(当然还有更多) 我在这里丢失了什么? 如果有更好的方法,我所有的耳朵..我不介意。 我不太熟悉windows shell脚本,这就是我在互联网上发现的。

+0

你的文件似乎是unicode格式。我不确定它是否处理Unicode,但在这里找到的repl.bat是删除crlf对的本地方法 - http://www.dostips.com/forum/viewtopic.php?f=3&t=3855 – foxidrive

+0

我试过了许多变化,但似乎没有任何工作。只是为了验证它的unicode相关问题还是只是误用,我该如何运行这个工具? – buddy123

+0

'输入file.txt | repl“\ r \ n”“”m> file2.txt' <---试试这个,它在纯文本文件中工作,无论如何删除crlf。 – foxidrive

回答

相关问题