de comando do DOS para substituir todas as instâncias de <filename> .config

votos
1

eu tenho uma versão editada de um arquivo de configuração específico para a minha máquina. Eu tenho o mesmo arquivo de configuração em vários diretórios diferentes na minha pasta de desenvolvimento. eu quero, em um único arquivo bat, substitua todas as instâncias deste arquivo com o meu editado.

Assim, no código pusedo: Tome C: \ edited.config e copiar para C: \ Projects \ / s onde quer original.config é encontrado

eu quero o arquivo final para ter o nome de original.config, não edited.config

assim que eu estou supondo que eu preciso de alguma combinação de um FOR, uma renomeação e cópia ou algo parecido

é isso mais fácil de fazer em PowerShell?

Alguém pode ajudar? obrigado

Publicado 27/08/2009 em 00:11
fonte usuário
Em outras línguas...                            


3 respostas

votos
3

Eu escrevi sobre isso um pouco atrás em http://jamesewelch.com/2008/05/01/how-to-write-a-dos-batch-file-to-loop-through-files/

Eu acho que sua solução será algo semelhante a (abaixo não foi testado, mas usado para mostrar ideia geral)

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

Há provavelmente um interruptor lá na cópia para suprimir avisos arquivo sobrescrever, mas eu não me lembro o que a chave está. Isso irá copiar o seu master.config e substituir o arquivo local (variável de %% a).

Respondeu 27/08/2009 em 00:17
fonte usuário

votos
1
@echo off
C:
cd \Projects
FOR /F "tokens=*" %%G IN ('DIR /B /S original.config') DO xcopy /y c:\edited.config %%G
Respondeu 27/08/2009 em 00:29
fonte usuário

votos
1

Estou espantado com o que os especialistas arquivo de lote DOS fazer o trabalho. Desde que eu não sou um deles, eu tomo uma abordagem que é pragmática para mim. Ele pode funcionar para você também.

  1. Obter uma lista de pastas de destino

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

  2. Editar original.bat em seu editor de texto favorito (eu gosto Notepad ++)

  3. Procurar "original.config" e substituir por "" (string vazia)

  4. Insira o texto "Xcopy C: \ edited.config" na frente de cada linha

  5. À prova de ler o resultado para ter certeza que é o que você quer. Se você não está certo de colocar um "eco" na frente de cada linha para uma corrida seca.

  6. Execute o arquivo em lotes.

Respondeu 27/08/2009 em 00:18
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more