Pre-in attesa di un file in tutti i file .cs nella directory e nella sottodirectory utilizzando PowerShell

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

  •  09-06-2019
  •  | 
  •  

Domanda

Come posso anteporre (inserire all'inizio del file) un file a tutti i file di un tipo nella cartella e nelle sottocartelle utilizzando Powershell?

Devo aggiungere un file di intestazione standard a tutti i file .cs e stavo cercando di utilizzare Powershell per farlo, ma anche se sono riuscito ad aggiungerlo in poche righe di codice, sono rimasto bloccato durante il tentativo di pre-aggiungerlo.

È stato utile?

Soluzione

Ecco un esempio molto semplice per mostrarti uno dei modi in cui potrebbe essere fatto.

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

Altri suggerimenti

Non ne ho idea, ma se hai il codice da aggiungere, fallo al contrario.Qualcosa di simile a

  1. rinominare il file esistente,
  2. creare un file vuoto con lo stesso nome sopra
  3. aggiungi l'intestazione al nuovo file vuoto,
  4. aggiungi il file rinominato al precedente,
  5. eliminare il file rinominato

Algoritmicamente parlando, non hai davvero bisogno di un file temporaneo:

1)leggi il contenuto del file che devi modificare

2)modifica il contenuto (come una stringa, assumendo che tu abbia il contenuto in una variabile denominata content), in questo modo:contenuto = intestazione + contenuto

3) cerca all'inizio del file, ogni lingua ha un metodo di ricerca o un equivalente di ricerca

4)scrivi il nuovo contenuto

5)troncare il file nella posizione restituita dal puntatore del file

Ecco qua, nessun file temporaneo.:)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top