2013-10-17 70 views
0

我在我的D盤中有一堆txt文件,它們隨機放置在不同的位置。某些文件還包含符號。我想要一個批處理文件,以便我可以在同一時間完全刪除它們的特定行,而不必逐一爲每個文件執行它,並請參考代碼,該代碼不會在其他位置創建新文本文件即我不想input.txt和output.txt的東西。只要我點擊批處理文件,我只需要將原始文件替換爲更改。如何使用批處理文件刪除一堆文本文件中的一行文本?

如 d:\ ABC \ 1.txt的 d:\某某\ 2.txt等

兩個我都想要自己的第3行,只需一次點擊全部擦除和新的文件必須與保存相同的名稱在同一位置,即新的已更改文本文件必須替換舊文本文件,並刪除其各自的行。也許某種* .txt的東西,即我應該能夠通過單個批處理文件更改驅動器中的.txt擴展名的所有文件,也許在另一個驅動器中,而不是將我的批處理文件分別放入每個文件夾,然後運行他們。另外一個vbs文件也是受歡迎的。

+0

請你能解釋一下在同一時間刪除這兩個文件線而不是一個接一個的要求其他?既然是什麼原因,你究竟是什麼意思,因爲硬盤顯然必須一次做一個。另外,你是否願意使用其他腳本語言? – ChrisProsser

+0

@ChrisProsser我只是說它應該儘可能快地執行。它不需要它可以處理在同一個實例中的所有文件(可以一起執行所有文件或一個接一個地執行,沒關係,但應該是快)。然而,參考一個接一個的方法,我的意思是我不想單獨打開每個文件,並刪除特定的行,因爲它會花費很長時間和它的一種繁忙的任務,這就是爲什麼我正在詢問批處理文件或vbs語言。就語言而言,我比其他任何人都更喜歡這兩種語言。 – wbt

回答

3

這使用稱爲從findrepl.bat一個幫手批處理文件 - 在同一個文件夾中,如下的批處理文件http://www.dostips.com/forum/viewtopic.php?f=3&t=4697

廣場findrepl.bat

它將爲驅動器d每* .txt文件搜索:並刪除第3行

@echo off 
for /r "d:\" %%a in (*.txt) do (
    echo processing "%%a" 
    type "%%a"|findrepl /v /o:3:3 >"%%a.tmp" 
    move "%%a.tmp" "%%a" >nul 
) 
pause 
+0

這取決於你需要做什麼。你能描述一下任務嗎? '/ o:3:3'表示開始和結束行。因此,要刪除第10行到第20行的所有行,您可以使用非常好的'/ o:10:20' – foxidrive

+0

......按照您的方法工作,但我遇到了一些問題,例如需要更多時間和內存,而不是僅僅刪除第三行它抹掉了整個txt文件。我創建了兩個批處理文件,一個是上面的代碼,另一個包含您引用的findrepl代碼。在我做錯了什麼或者代碼是否可以增強進一步簡化流程並更精確?你是如何包含暫停命令以及它的目的是什麼? – wbt

+0

通過findrepl你的意思是在上面提到的頁面上的大代碼.....正確???我複製了code.now這兩個文件使文本文件分解成部分。例如,我給你發送一個文本文件我用測試purpose.try刪除它的整個第三行與您的代碼,並告訴我。 – wbt

相關問題