Pre-in attesa di un file in tutti i file .cs nella directory e nella sottodirectory utilizzando PowerShell
-
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.
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
- rinominare il file esistente,
- creare un file vuoto con lo stesso nome sopra
- aggiungi l'intestazione al nuovo file vuoto,
- aggiungi il file rinominato al precedente,
- 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.:)