Команда DOS для замены всех экземпляров <filename>.config - PullRequest
1 голос
/ 27 августа 2009

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

Итак, в коде pusedo: Возьмите C: \ edited.config и скопируйте в C: \ Projects \ / s везде, где находится оригинал .config

я хочу, чтобы конечный файл имел имя original.config, а не edited.config

так что я предполагаю, что мне нужна какая-то комбинация FOR, переименования и копирования или что-то в этом роде

это проще сделать в Powershell?

Кто-нибудь может помочь? Спасибо

Ответы [ 3 ]

3 голосов
/ 27 августа 2009

Я писал об этом чуть-чуть назад в http://jamesewelch.com/2008/05/01/how-to-write-a-dos-batch-file-to-loop-through-files/

Я думаю, что ваше решение будет выглядеть примерно так (ниже не проверено, но используется для демонстрации общей идеи)

for /f %%a IN ('dir /b *.config') do copy c:\master.config %%a

Возможно, на копии есть переключатель для подавления предупреждений о перезаписи файла, но я не помню, что это за переключатель. Это скопирует ваш master.config и перезапишет ваш локальный файл (переменная %% a).

1 голос
/ 27 августа 2009
@echo off
C:
cd \Projects
FOR /F "tokens=*" %%G IN ('DIR /B /S original.config') DO xcopy /y c:\edited.config %%G
1 голос
/ 27 августа 2009

Я поражен тем, что эксперты по пакетным файлам DOS делают работу. Поскольку я не один из них, я придерживаюсь подхода, который прагматичен для меня. Это может сработать и для вас.

  1. Получить список папок назначения

    C: CD\ Dir original.config / s> original.bat

  2. Отредактируйте original.bat в вашем любимом текстовом редакторе (мне нравится Notepad ++)

  3. Найдите «original.config» и замените на «» (пустая строка)

  4. Вставьте текст «Xcopy C: \ edited.config» в начале каждой строки

  5. Проверьте результат, чтобы убедиться, что это то, что вы хотите. Если вы не уверены, поместите «Эхо» перед каждой строкой для пробного запуска.

  6. Запустить пакетный файл.

...