簡體   English   中英

如何編寫Powershell腳本在Windows上設置開發人員環境?

[英]How do I write a powershell script to setup a developer environment on Windows?

堆棧溢出,

我正在使用PowerShell腳本為我的團隊設置開發人員環境。 我想要它,以便用戶可以單擊快捷方式並為他們下載並安裝必要的開發人員工具。 這些安裝應該是全局的,並且在PATH上。 我已經有了調用腳本的快捷方式。 腳本本身就是我遇到的問題。

我正在使用Chocolatey嘗試在開發人員計算機上安裝節點。

這是我到目前為止編寫的代碼

devEnv.ps1

echo "Installing Chocolatey package manager, check version with choco"
$env: ChocolateyInstall="$Home/chocolatey"
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
echo "Chocolatey installed. Installing NodeJS and NPM via Chocolatey."
Start-Process powershell.exe -argument "-NoExit -Command ./nodejs.ps1"
echo "Installation complete."
Write-Host -NoNewLine 'Press any key to continue...';
$null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown');

我能夠成功安裝Chocolatey,但是無法安裝node。 我創建了另一個腳本,在devEnv.ps1的第5行調用

我希望新的PowerShell實例可以訪問choco命令。 它不是。 下面,我包括了第二個腳本。

nodejs.ps1

Invoke-Expression -Command "choco install nodejs.install"

錯誤返回

choco : The term 'choco' is not recognized as the name of a cmdlet, 
function, script file, or operable program. Check
the spelling of the name, or if a path was included, verify that the path 
is correct and try again.
At line:1 char:1
+ choco install nodejs.install
+ ~~~~~
+ CategoryInfo          : ObjectNotFound: (choco:String) [], 
CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

因此,我瀏覽了您的腳本並遇到了一些需要改進的地方:

$Env:ChocolateyInstall = "$HOME\chocolatey"

$chocoInstall = New-TemporaryFile
'Installing chocolatey package manager.'
'Check version with `choco.exe --version`.'
[Net.WebClient]::new().DownloadString(
    'https://chocolatey.org/install.ps1'
) | Out-File -FilePath $chocoInstall.FullName -Encoding UTF8
. $chocoInstall.FullName

'Chocolatey installed. Installing NodeJS and NPM via Chocolatey.'
& "$Env:ProgramData\chocolatey\choco.exe" install nodejs --yes --force

'Installation complete.'

'Press any key to continue...'
$null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown')

這將通過對可執行調用進行全路徑處理來解決在PATH環境變量中找不到choco.exe的問題。 此外,它將解決可能已經安裝npm並自動確認軟件包的情況。

您可能需要針對此用例研究Boxstarter。 Boxstarter將處理某些工具所需的重新啟動,並具有用於配置工作環境的其他選項(例如,配置Explorer選項)。 它還可以處理這種特殊情況,即在安裝choco.exe之后才發現它(因為PATH已更新,但Windows尚未使用更改更新當前會話)。

您可以在https://boxstarter.org上找到它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM