Pre-pendiente de un archivo a todos los archivos .cs en el directorio y subdirectorio usando PowerShell

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

  •  09-06-2019
  •  | 
  •  

Pregunta

¿Cómo puedo anteponer (insertar al principio del archivo) un archivo a todos los archivos de un tipo en una carpeta y subcarpetas usando Powershell?

Necesito agregar un archivo de encabezado estándar a todos los .cs y estaba intentando usar Powershell para hacerlo, pero aunque pude agregarlo en algunas líneas de código, me quedé atascado al intentar anteponerlo.

¿Fue útil?

Solución

Aquí hay un ejemplo muy simple para mostrarle una de las formas en que se podría hacer.

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

Otros consejos

No tengo idea, pero si tienes el código para agregar, hazlo al revés.Algo como

  1. cambiar el nombre del archivo existente,
  2. cree un archivo vacío con el mismo nombre que el anterior
  3. agregar encabezado al nuevo archivo vacío,
  4. agregar el archivo renombrado al anterior,
  5. eliminar archivo renombrado

Algorítmicamente hablando, realmente no necesitas un archivo temporal:

1) lea el contenido del archivo que necesita modificar

2) modifique el contenido (como una cadena, asumiendo que tiene el contenido en una variable llamada contenido), así:contenido = encabezado + contenido

3) buscar al principio del archivo, cada idioma tiene un método de búsqueda o un equivalente de búsqueda

4) escribe el nuevo contenido

5)truncar el archivo en la posición devuelta por el puntero del archivo

Ahí lo tienes, sin archivo temporal.:)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top