2009-08-13 14 views
0

バッチファイル内で検索と置換を行う小さなバッチファイルがあります。私は物事を取り除くことが難しいです(例えば、テキストをヌル値に置き換えるなど)。シンプルですが検索で何も見つかりませんでした!Windowsバッチ検索と置換質問

あなたはxxxxxに見て、私は空白を必要な場所YYYYYは次のとおりです。

これはファイルです!

乾杯。

@echo off 
setlocal enabledelayedexpansion 

if exist %~n1.bugs%~x1 del %~n1.bugs%~x1 

if not exist "%1" (echo this file does not exist...)&goto :eof 

set FIND_LOGO_1_DATA=logo_data_0 101 
set FIND_LOGO_2_DATA=logo_data_0 102 
set FIND_LOGO_3_DATA=logo_data_0 103 
set FIND_LOGO_4_DATA=logo_data_0 104 
set FIND_LOGO_5_DATA=logo_data_0 107 
set FIND_LOGO_6_DATA=logo_data_0 108 
set FIND_LOGO_7_DATA=logo_data_0 109 
set FIND_LOGO_8_DATA=logo_data_0 110 
set FIND_LOGO_9_DATA=logo_data_0 105 
set FIND_LOGO_10_DATA=logo_data_0 106 


for /f "tokens=* delims=" %%a in (%1) do (

    set write=%%a 
    if "%%a"=="logo_0 2" set write=xxxxx 
    if "%%a"=="logo_0 1" set write=yyyyy 
    if "%%a"=="%FIND_LOGO_1_DATA%" set write=logo_0 1 
    if "%%a"=="%FIND_LOGO_2_DATA%" set write=logo_1 1 
    if "%%a"=="%FIND_LOGO_3_DATA%" set write=logo_2 1 
    if "%%a"=="%FIND_LOGO_4_DATA%" set write=logo_3 1 
    if "%%a"=="%FIND_LOGO_5_DATA%" set write=logo_4 1 
    if "%%a"=="%FIND_LOGO_6_DATA%" set write=logo_5 1 
    if "%%a"=="%FIND_LOGO_7_DATA%" set write=logo_6 1 
    if "%%a"=="%FIND_LOGO_8_DATA%" set write=logo_7 1 
    if "%%a"=="%FIND_LOGO_9_DATA%" set write=logo_8 1 
    if "%%a"=="%FIND_LOGO_10_DATA%" set write=logo_9 1 


    (echo !write!)>>%~n1.bugs%~x1 
) 

答えて

1

私はこれを正しく見ている場合は、ちょうど、出力に現在xxxxxyyyyyを持っている2つの場合に空白行をしたいですか?

この場合、実際は非常に簡単です。あなたは何にwriteを設定する必要があります。

set write= 

、あなたechoその変数次のように行変更:writeが空の場合

echo.!write! 

これは出力にエコー空行が発生しますが「ECHO is off」を抑制する。メッセージ(hereとも記載されています)。

+0

優れています。本当にありがとう。 –