Найти и заменить строку в нескольких файлах, используя пакетный скрипт - PullRequest
5 голосов
/ 10 марта 2012

У меня есть более 3000 файлов в папке. Я хочу найти и заменить текст другим. Как я могу это сделать? Я новичок в пакетном сценарии. Я могу заменить его в 1 файле, но я не знаю, как заменить в нескольких файлах.

FOR /F %%L IN (lala.txt) DO (
    SET "line=%%L"
    SETLOCAL ENABLEDELAYEDEXPANSION
    set "x=!line:E:\Test=E:\Test\Temp!"
    echo f | xcopy /E !line! !x! 
    ENDLOCAL
)

Как мне отредактировать мой код, чтобы заменить строку во всех файлах? Жду вашей помощи. Спасибо

Ответы [ 2 ]

8 голосов
/ 11 марта 2012

Установите Утилиту для поиска и замены текста , и тогда вы можете просто ввести

fart *.txt E:\Test E:\Test\Temp
3 голосов
/ 10 марта 2012

Вы можете использовать второй цикл для файлов.

for %%f in (*.txt) do (
    FOR /F %%L IN (%%f) DO (
      SET "line=%%L"
      SETLOCAL ENABLEDELAYEDEXPANSION 
      set "x=!line:E:\Test=E:\Test\Temp!" 
      echo f | xcopy /E !line! !x! 
      ENDLOCAL
  )
)

Этот код показывает только, как построить цикл для обработки всех текстовых файлов.
Внутренний код использует код OP, который ничего не заменит, но это не был вопрос.

...