Pré-pendente de um arquivo para todos os arquivos .cs no diretório e subdiretório usando o PowerShell

StackOverflow https://stackoverflow.com/questions/73892

  •  09-06-2019
  •  | 
  •  

Pergunta

Como posso pré-pender (inserir no início do arquivo) um arquivo para todos os arquivos de um tipo em pasta e subpastas usando o Powershell?

Preciso adicionar um arquivo de cabeçalho padrão a todos os .cs e estava tentando usar o Powershell para fazer isso, mas embora consegui anexá-lo em algumas linhas de código, fiquei preso ao tentar anexá-lo previamente.

Foi útil?

Solução

Aqui está um exemplo muito simples para mostrar uma das maneiras como isso pode ser feito.

$Content = "This is your content`n"
Get-ChildItem *.cs | foreach-object { 
$FileContents = Get-Content -Path $_
Set-Content -Path $_ -Value ($Content + $FileContents)
}

Outras dicas

Não tenho ideia, mas se você tiver o código para anexar, faça o contrário.Algo como

  1. renomear arquivo existente,
  2. crie um arquivo vazio com o mesmo nome acima
  3. anexar cabeçalho ao novo arquivo vazio,
  4. anexar arquivo renomeado ao anterior,
  5. excluir arquivo renomeado

Falando algoritmicamente, você realmente não precisa de um arquivo temporário:

1) leia o conteúdo do arquivo que você precisa modificar

2) modifique o conteúdo (como uma string, supondo que você tenha o conteúdo em uma variável chamada content), assim:conteúdo = cabeçalho + conteúdo

3)procure até o início do arquivo, cada idioma possui um método de busca ou um equivalente de busca

4)escreva o novo conteúdo

5)truncar o arquivo na posição retornada pelo ponteiro do arquivo

Aí está, nenhum arquivo temporário.:)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top