Невозможно установить Git Extensions в автоматическом режиме с помощью Powershell - PullRequest
0 голосов
/ 17 марта 2020

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

Я пытаюсь какой-то код, подобный этому:

***$installerFilename = ".\Git-" + $versionToInstall + "-64-bit.exe"
$installer = Resolve-Path $installerFilename
Write-Host "Running Git installer:" $installer
$optionsFile = Resolve-Path ".\install-defaults.txt"
$logFile = $env:TEMP + "\Git-install-" + $timestamp + ".log"
$commandLineOptions = '/SP- /VERYSILENT /SUPPRESSMSGBOXES /FORCECLOSEAPPLICATIONS /LOADINF="'+ $optionsFile + '" /LOG="' + $logFile + '"'
Write-Host "With options:" $commandLineOptions
Start-Process -Wait -FilePath $installer -ArgumentList $commandLineOptions
## Configure git with some defaults
### Set git as a command alias
if (!(Test-Path -Path "alias:git")) 
{
   new-item -path alias:git -value 'C:\Program Files\Git\bin\git.exe'
}
### Invoke git commands that set defaults for user.
git config --global credential.helper wincred
git config --global push.default simple
git config --global core.autocrlf true***

*Write-Host "Git installer done."*

Я пытаюсь заменить путь к файлу установки в моей системе. Это не дало никакой ошибки, но и не работает.

1 Ответ

0 голосов
/ 17 марта 2020

Конечно, при запуске внешнего содержимого из PowerShell цитирование является жизненно важной частью реализации params. В топи есть блоги / статьи / документы c.

У меня не было необходимости делать это Git, но молча, но посмотрите, предоставляет ли какой-либо из них edification.

как загрузить и установить git клиент для окна, используя

# run installer
$git_install_inf = "<install inf file>"
$install_args = "/SP- /VERYSILENT /SUPPRESSMSGBOXES /NOCANCEL /NORESTART /CLOSEAPPLICATIONS /RESTARTAPPLICATIONS /LOADINF=""$git_install_inf"""
Start-Process -FilePath $installer -ArgumentList $install_args -Wait

git -powershell-silent-install / git -silent-uninstall.ps1

Я немного подправил то, что вы опубликовали, из-за цитирования и попытался разобраться, возможно, просто возможно, это было то, что catch22 для вашего случая использования.

Примечание:

Эти изменения не проверены, так как у меня уже установлено и настроено Git, как мне нужно, Я не хотел связываться с моей средой для проверки.

Я немного подправил то, что вы опубликовали, из-за цитирования ...

about_Quoting

Цитата PowerShell

... и пытался потенциально иметь дело с, может быть, просто возможно, это было на catch22 для вашего случая использования. Кроме того, я дернул материал Write-Host, так как вывод на экран - по умолчанию PowerShell. Хорошо, что и исторически Write-Host просто не рекомендуется (даже отцом Monad / PowerShell) против Write-Output до PowerShell v5.

Источники:

Write-Host считается вредным

С PowerShell v5 Write-Host больше не "убивает щенков"

Информация о записи

Примечание:

Эти изменения не проверены, поскольку у меня уже установлено Git и настроенный так, как мне нужно, я не хотел связываться с моей средой для проверки.

$installerFilename = ".\Git-$($versionToInstall)-64-bit.exe"
$installer = Resolve-Path $installerFilename

"Running Git installer:  $installer"

$optionsFile = Resolve-Path '.\install-defaults.txt'
$logFile = "$env:TEMP\Git-install-$($timestamp).log"

$commandLineOptions = "/SP- /VERYSILENT /SUPPRESSMSGBOXES /FORCECLOSEAPPLICATIONS /LOADINF=' $optionsFile  /LOG=  $logFile'"

"With options: $commandLineOptions"

<#
Use this option 

Start-Process -Wait -FilePath $installer -ArgumentList $commandLineOptions

or 

PowerShell.exe -Command "& $installer $commandLineOptions"
#>

## Configure git with some defaults
### Set git as a command alias
if (!(Test-Path -Path 'alias:git')) 
{New-Item -path 'alias:git' -value 'C:\Program Files\Git\bin\git.exe'}

### Invoke git commands that set defaults for user.
git config --global credential.helper wincred
git config --global push.default simple
git config --global core.autocrlf true***

'Git installer done.'
...