2016-05-25 2 views
0

ベストユーザー、私はtxtファイル内の特定の単語を削除バッチスクリプトを作っしたい

バッチを経由して、テキストファイル内の特定の単語を削除します。 は、私は次のように使用しますが、それは

(私が使用することをスクリプト)動作しませんでした:私は削除したい

1015faf2da091b02 device 
1115fbd4e0dd3b03 device 

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" 

(INPUT_%日付%.txtは)すべての行に "device"という単語があります。

誰も私を助けることができます!

種類よろしく、

AVR

答えて

0

私はあなたがこのようSTHたいと思います:

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

しかし、あなたは、単純な1つのライナーでこれを行うことができます(たとえばunxutils用から)あなたはSEDインストールかつて

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

出力をanothe rファイルを作成します。

+0

回答ありがとうございます。コードについてもっと詳しく説明してください:行> echo!b:%x%=! 。なぜ%% aをbに割り当てるのでしょうか? %% aに割り当てられているもの。私はそれを読むことができるリンクを提供できますか?事前に感謝します –

+0

私は別の質問があります:私はスクリプトを実行するが、何も変わらない、ファイルは以前と同じです。私はそれを読んで "unututils"で試してみると、私は戻ってくるだろう。しかし、私は、ウィンドウに付属の機能を組み込みたいだけです –

+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)を元のファイルに変更し、[名前を変更する](http://ss64.com/nt/ren.html)新しい名前を元の名前に変更します。 – Stephan

関連する問題