PowerShell脚本执行dt setup时如何向交互提示传入预定义参数
PowerShell自动传入交互式命令
dt setup参数的解决方案 实现逻辑
你遇到的是交互式命令的自动输入问题,dt setup会按顺序读取标准输入内容作为提示的应答,你可以按提示出现的顺序把所有应答内容拼接后通过管道传递给该命令。
注意你脚本里的$UserFullName是SecureString类型,需要先转换为明文普通字符串才能作为输入传递。
修改后的完整脚本
param( [Parameter(Mandatory=$True)] [string]$UserMailId, [Parameter(Mandatory=$True)] [Security.SecureString]$UserFullName ) # SecureString转明文 $plainFullName = [System.Net.NetworkCredential]::new("", $UserFullName).Password # 按dt setup的提示顺序填写应答,顺序必须和实际提示顺序完全匹配 $responses = @( "Y" # 第一个提示:是否允许devtool管理git代理设置 $UserMailId # 第二个提示:输入邮箱 $plainFullName # 第三个提示:输入全名 "Y" # 第四个提示:是否跳过已有token的创建 ) # 应答内容通过管道传递给dt setup $responses | dt setup
注意事项
- 应答数组的每一项对应一次提示的输入内容,输入完成后会自动模拟回车确认
- 如果不需要默认选Y的代理设置、跳过token选项,可以把对应位置的值替换为你需要的内容,比如选n就改为
"n" - 如果后续
dt setup更新了提示项,只要调整$responses数组里的内容和顺序即可
内容的提问来源于stack exchange,提问作者Preethi
相关产品推荐
相关产品推荐

