Pet*_*ert 1 powershell installation batch-file download
我正在尝试编写一个脚本,理想情况下,该脚本将下载用于不同程序的.exe / .msi文件,并以静默方式运行它们。这些安装通常确实需要输入,例如单击“下一步”或选中单选按钮。如果我知道要运行的安装设置,如何获得这些安装以所需的方式运行它们,但是却保持沉默?使用批处理编程或使用Powershell进行编码会更简单吗?(我都是这方面的初学者,所以没有偏好。建议将不胜感激)。理想情况下,该脚本将打包成它自己的.exe文件,以在任何Windows计算机上运行。
这是简单的部分。在PowerShell 3或更高版本中,可以通过Invoke-WebRequest下载:
Invoke-WebRequest 'http://example.com/installer.exe' -OutFile 'installer.exe'
Run Code Online (Sandbox Code Playgroud)
在早期版本中,您可以创建一个WebClient对象并使用其DownloadFile方法:
$Client = New-Object System.Net.WebClient
$Client.DownloadFile('http://example.com/installer.exe', 'installer.exe')
Run Code Online (Sandbox Code Playgroud)
如果您有一个文本文件列出了所有需要下载的安装程序,每行一个URL,则可以像这样下载所有文件:
Get-Content 'installers.txt' | % { Invoke-WebRequest $_ -OutFile ($_ -replace '^.*?([^/]+$)', '$1') }
Run Code Online (Sandbox Code Playgroud)
这是较难的部分。UI的自动化通常很杂乱,PowerShell也不会竭尽全力来支持它。可以使用.NET Framework来完成,但是PowerShell确实更适合直接处理数据。
但是,如果您必须进行UI自动化,我建议您使用AutoIt之类的替代方法。AutoIt是VBScript,PowerShell和其他几种语言的混搭,可以轻松地执行诸如单击按钮的操作,并自动在文本框中输入文本。它通常用于自动化GUI安装。
或者,请考虑在部署之前将EXE安装程序重新打包为MSI。MSI用于静默安装。它们的属性值可以是自包含的(或存储在MST文件中),因此用户不必在运行时键入它们的值,因此无需自动化其UI。Smart Package Community Edition(以前是WinInstall LE)是免费软件,可以扫描安装程序创建的文件和注册表项,并为您打包为MSI文件。
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
5273 次 |
| 最近记录: |