2016-05-25 106 views
0

最佳用戶,通過批量刪除文本文件中的特定單詞

我想製作一個批處理腳本,刪除txt文件中的特定單詞。 我用下面的,但它沒有工作

(腳本,我使用):

SET /p word=device 
FOR /f "delims=" %%a IN ('dir /a-d /b "Input_%date%.txt"') DO (
SET "fname=%%~na" 
SET "fname=!fname:%word%=!"' 
IF NOT "!fname!"=="" REN "%%~a" "!fname!%%~xa" 

(輸入_%日期%.TXT):

1015faf2da091b02 device 
1115fbd4e0dd3b03 device 

我要刪除在每一行中都有「設備」字樣。

任何人都可以幫助我!

親切的問候,

AVR

回答

0

我想你想某事像這樣:

SETLOCAL EnableDelayedExpansion 
set x=device 
FOR /f "delims=" %%a IN (Input_%date%.txt) DO (
    set b=%%a 
    echo !b:%x%=! 
) 

但是,一旦你安裝SED(例如從unxutils),您可以用簡單的一個襯墊做到這一點

type input_%date%.txt | sed "s/device//" 

我以爲你可以轉發輸出到另一個r文件。

+0

謝謝你回答,你能解釋一下更多關於代碼的問題:線路是什麼> echo!b:%x%=! 。爲什麼我們將%% a分配給b。以及分配給%% a的內容。你能否提供我可以閱讀的鏈接?在此先感謝 –

+0

我有另一個問題:我執行該腳本,但沒有任何更改,該文件是以前一樣。我會閱讀和嘗試與「unxutils」,如果它的作品,我會回來。但我只想使用windows –

+1

@AVR [for /?](http://ss64.com/nt/for_cmd.html)和[set /?](http://ss64.com /nt/set.html)將回答你的大部分問題。這個答案只是把改變的內容寫到屏幕上,你必須[重定向](http://ss64.com/nt/syntax-redirection.html)到一個新文件,然後[刪除](http:// ss64.com/nt/del.html)將原始文件和[rename](http://ss64.com/nt/ren.html)新的名稱改爲原來的名稱。 – Stephan

相關問題