2008-09-16 7 views
3

Comment puis-je pré-insérer (insérer au début du fichier) un fichier dans tous les fichiers d'un type dans un dossier et sous-dossiers utilisant Powershell?Pré-envoyer un fichier à tous les fichiers .cs dans le répertoire et le sous-répertoire à l'aide de PowerShell

Je dois ajouter un fichier d'en-tête standard à tous les fichiers .cs et j'essayais d'utiliser Powershell pour le faire, mais pendant que je pouvais l'ajouter dans quelques lignes de code, j'étais bloqué .

Répondre

9

Voici un exemple très simple pour vous montrer l'une des façons de le faire.

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

N'en avez aucune idée, mais si vous avez le code à ajouter faites-le dans l'autre sens. Quelque chose comme

  1. renommage fichier existant,
  2. créer un fichier vide nommé comme ci-dessus
  3. tête append au nouveau fichier vide,
  4. append fichier renommé précédent,
  5. Supprimer le fichier renommé
1

parler Algorithmiquement, vous ne avez pas vraiment besoin d'un fichier temporaire:

1) lire le contenu du fichier que vous devez modifier

2) modifier le contenu (sous forme de chaîne, supposant que vous avez le contenu dans une variable contenu nommé), comme ceci: content = tête + contenu

3) chercher au début du fichier, chaque langue a une méthode de recherche ou une recherche équivalente

4) écrire le nouveau contenu

5) tronquer le fichier à la position retournée par le pointeur de fichier

Voilà, aucun fichier temporaire. :)

Questions connexes