我正在尝试通过 PowerShell 以编程方式将一系列语言的“基本打字”部署到一组 Windows PC。 虽然我是一名程序员,但我对 PowerShell 本身并没有太多经验。
看这些文章:
https://woshub.com/install-language-pack-windows-powershell/
我想我想运行这样的东西:
Install-Language -Language da-DK -ExcludeFeatures OCR, TextToSpeech, Handwriting
但是,上面给了我一个错误:
A positional parameter cannot be found that accepts the argument 'OCR'
我假设我没有使用正确的语法/格式,或者我使用的值不正确。 令人沮丧的是,MS 文档没有列出 ExcludeFeatures 可接受的值,也没有任何示例显示它的使用方式。
任何帮助或建议将不胜感激,谢谢。
我尝试仅使用 OCR 或 TextToSpeech 作为 -ExcludeFeatures 的参数来运行 Install-Language,但这会产生相同的错误。
我什至尝试过跑步
Install-Language en-US
但是我收到错误“无法安装语言。错误代码-2147418113”。 这可能是网络访问或阻止 Windows 更新的原因,所以我将单独解决该问题...
正如mclayton所指出的,
-ExcludeFeatures
是一个switch参数,即它充当标志(如果指定,则打开;如果没有指定,则关闭),因此接受无参数 .[1]
Install-Language
帮助主题建议-ExcludeFeatures
开关抽象地请求排除那些在交互式安装中选择加入的功能(“相关的语言按需功能将不会已安装。”)
-ExcludeFeatures
时,仅为目标语言安装以下功能:
BasicTyping
OCR
换句话说:
您无法明确控制哪些功能被排除。
在您试图排除的内容中,
-ExcludeFeatures
确实排除了TextToSpeech
和Handwriting
,但不排除OCR
。
因此,请从 elevated 会话运行以下命令(以管理员身份运行):
#requires -RunAsAdministrator
# NOTE: Took almost 7 minutes (!) to complete on my W11 22H2 machine
Install-Language -Language da-DK -ExcludeFeatures
[1] 从技术上讲,您可以将
$true
或 $false
作为参数传递,并用 :
分隔(例如,-ExcludeFeatures:$true
),这主要在使用通过变量或提供的布尔值以编程方式构造参数时使用表达; -ExcludeFeatures:$true
实际上与 -ExcludeFeatures
相同,并且 -ExcludeFeatures:false
- 通常在这种情况下 - 与 不指定 -ExcludeFeatures
相同。请参阅此答案了解更多信息。