2009-10-01 439 views
6

有沒有辦法用批處理文件替換文本文件中的某些字符?用批處理文件替換文本文件中的字符

我沒有找到任何命令來做到這一點。

+0

你能舉一個你想要替換的例子嗎(之前和之後)? – akf 2009-10-01 13:52:52

+0

我只是想在文本文件中用空字符替換'<'的所有出現。 – 2009-10-02 08:02:45

回答

4

簡單的回答是「不,不是基本的Windows實用程序」

但隨着其他答案建議,有很多unix平臺在那裏,你想什麼做的。參加gnuwin32 packages

編輯:

好吧,我修改我的嚴格的 「否」。根據您的任務和操作系統的複雜程度,可能有辦法做到這一點。當使用Windows 2000或更高版本時,cmd提供了可以使用的命令擴展。

其基本思想是使用FOR循環遍歷輸入文件的每一行,然後使用SET命令提供的字符串替換來替換您的字符。

我手頭沒有解決方案,但你可以自己嘗試,使用this相當酷的網站infromation。 FOR循環語法請看herehere用於字符串替換。

+0

爲gnuwin32 +1。 – 2009-10-01 14:00:59

+2

迭代文件的基本問題是,當它包含'&',''''或'>'等特殊字符時,會變得混亂。投出單數的單引號,所有投注都關閉。當行中有奇數個引號時,還沒有找到正確轉義這些字符的方法。否則,它很容易,但很混亂。 – Joey 2009-10-01 17:58:16

+0

哦,還有一件事:'for'跳過空行。如果你需要這個文件來存活,那麼你必須尋找其他解決方案。 – Joey 2010-07-01 16:21:26

0

您可以搜索像GREP這樣的命令行程序,您可以從批處理中調用該批處理,該批處理將替換字符串和文件併爲您執行交換。

+0

grep用來執行搜索/過濾...甚至wikipedia都知道:http://en.wikipedia.org/wiki/Grep – enguerran 2009-10-01 14:29:05

+0

事實上,sed更專注於該任務,但僅供參考,有Windows/DOS允許替換的grep變種。 – Deverill 2009-10-01 14:29:22

0

您可以使用Unix命令行實用程序「tr」的DOS端口。

一個免費的DOS端口可以是found here,我喜歡的其中之一(有很多不同的)是「UXUTL-全面收集DOS命令行Unix工具」。

好處是,你會得到一個令人難以置信的有用命令的全部組合,而不僅僅是tr。

1

您可以安裝unxutils然後做

sed "s/WORD_FROM/WORD_TO/" file_name > changed.file.name 

改變的話 或

cat file|tr "a" "b" > changed.file.name 

改變字符

1

用sed空:

sed -i 's/FROM/TO/g' filename.txt 

sed可以下載here,適用於各種平臺。

1

您必須使用WIN32 SED並查看官方gnu sed頁面以獲取解釋。它真的很強大:

> sed "s/WORD_FROM/WORD_TO/" file_name > changed.file.name 
0

即使這個問題是很老,未來的讀者可能有興趣知道,如果你想有一個小的exe沒有依賴關係剛剛替換文本,我建議使用​​。

相關問題