Предварительная обработка файла для всех файлов .cs в каталоге и подкаталоге с помощью PowerShell

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

  •  09-06-2019
  •  | 
  •  

Вопрос

Как я могу предварительно добавить (вставить в начало файла) файл ко всем файлам определенного типа в папке и вложенных папках с помощью Powershell?

Мне нужно добавить стандартный заголовочный файл в all .cs, и я пытался использовать Powershell для этого, но, хотя я смог добавить его в нескольких строках кода, я застрял при попытке его предварительной загрузки.

Это было полезно?

Решение

Вот очень простой пример, который покажет вам один из способов, как это можно сделать.

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

Другие советы

Понятия не имею, но если у вас есть код для добавления, просто сделайте это наоборот.Что -то вроде

  1. переименовать существующий файл,
  2. создайте пустой файл с таким же именем, как указано выше
  3. добавить заголовок к новому пустому файлу,
  4. добавить переименованный файл к предыдущему,
  5. удалить переименованный файл

С точки зрения алгоритма, на самом деле вам не нужен временный файл :

1) прочитайте содержимое файла, который вам нужно изменить

2) измените содержимое ( в виде строки, предполагая, что у вас есть содержимое в переменной с именем content ) , например :содержимое = заголовок + содержимое

3) выполните поиск в начале файла, для каждого языка есть свой метод поиска или его эквивалент

4) напишите новый контент

5)обрежьте файл в позиции, возвращаемой указателем на файл

Вот он у вас, никакого временного файла.:)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top