【问题标题】:Windows Batch Search and Replace QuestionWindows 批量搜索和替换问题
【发布时间】:2010-11-19 09:06:10
【问题描述】:

我有一个小批处理文件要在批处理文件中搜索和替换。我很难删除东西(例如用空值替换一些文本)。确定很简单,但通过搜索没有找到任何东西!

这是文件:

你看到 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
)

【问题讨论】:

    标签: windows search batch-file replace


    【解决方案1】:

    如果我没看错,那么您只想在当前有xxxxxyyyyy 的两种情况下输出一个空行,对吗?

    如果是这样的话,那其实很简单。您只需将write 设置为空即可:

    set write=
    

    并通过以下方式更改您echo该变量所在的行:

    echo.!write!
    

    如果write 为空,这将导致echo 输出一个空行并抑制“ECHO 已关闭”。消息(也记录在here)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      • 2012-03-21
      • 1970-01-01
      • 2012-03-23
      • 2011-03-19
      • 2011-11-09
      • 1970-01-01
      相关资源
      最近更新 更多