В Powershell, как мне создать файл, добавив строку с содержимым другого файла? - PullRequest
0 голосов
/ 31 января 2020

Я работаю над сценарием Powershell, который выполняет следующие действия:

  1. Сносит git игнорирует шаблоны из https://gitignore.io
  2. Читает пользовательские git игнорировать шаблоны из текстового файла в файловой системе
  3. Добавляет оба файла в файл .gitignore на диске, перезаписывая предыдущее содержимое.

Конечным результатом должен быть файл с gitignore Шаблоны .io ПЛЮС любые пользовательские шаблоны из другого файла.

Вот то, что я до сих пор придумал:

Function gig {
  param(
    [Parameter(Mandatory=$true)]
    [string[]]$list
  )
  $params = ($list | ForEach-Object { [uri]::EscapeDataString($_) }) -join ","
  Invoke-WebRequest -Uri "https://www.gitignore.io/api/$params" | select -ExpandProperty content
}

gig angular,csharp,images,vagrant | cat gitignore-patterns.txt | sc .gitignore

Я понимаю, что этот скрипт недопустим, как последняя строка даже не работает. Но я напечатал это таким образом, чтобы логически показать, чего я хочу. Я обычно работаю в Linux Bash скриптах, так что я немного пробую модели, хотя я понимаю, что это плохо переводится в Powershell. Я надеюсь, что есть способ объединить команды в команду, создать строку, которая в итоге будет передана в файл. Или что-то столь же простое.

Обратите внимание, что мои исследования в этой области показали частичные решения, но не нашли решения, объединяющего все это. Например, я видел вопросы SO, показывающие, как объединить две строки, записать строку в файл, добавить в файл и т. Д. c. Но нет единого решения, вовлекающего их всех вместе. Я надеюсь получить здесь более широкое решение для изображения.

1 Ответ

1 голос
/ 31 января 2020

Обернуть оба оператора в подвыражение массива @() и передать в Set-Content:

@(
    gig angular,csharp,images,vagrant
    Get-Content gitignore-patterns.txt 
) |Set-Content .gitignore
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...