Powershell download/install 字体 "deploy"

Powershell download/install fonts "deploy"

我正在测试新的 powershell/batch 下载和安装字体 oneliner,但到目前为止运气不好(cmd 中每次都出错,在 PS 下是可以的)... 我相信某处引号有问题

point 是可从批处理中运行的简单 oneliner

POWERSHELL -NoProfile -ExecutionPolicy Bypass -Command "& {$fonts=@('Roboto','Ubuntu') | ForEach-Object {(New-Object System.Net.WebClient).DownloadFile('https://fonts.google.com/download?family=$_', '$env:TEMP$_.zip'); Expand-Archive -Force '$env:TEMP$_.zip' -DestinationPath '$env:TEMP\FONTS'}}"

谢谢

由于您在命令中使用了单引号,因此 Powershell 的 variable substitution 机制将不起作用。所以你必须使用双引号并用反斜杠来掩盖它们。这对我有用:

POWERSHELL -NoProfile -ExecutionPolicy Bypass -Command "& {$fonts=@('Roboto','Ubuntu') | ForEach-Object {(New-Object System.Net.WebClient).DownloadFile(\"https://fonts.google.com/download?family=$_\", \"$env:TEMP$_.zip\"); Expand-Archive -Force \"$env:TEMP$_.zip\" -DestinationPath \"$env:TEMP\FONTS\"}}"