2013-07-24 116 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

回答

相關問題