以下是优化后的程序代码:

$InstallFolderPath = "C:\Path\To\Install\Folder"

$Programs = @(
    @{
        Name = "QQ"
        Installer = "$InstallFolderPath\QQSetup.exe"
        DownloadUrl = "https://example.com/QQSetup.exe"
    },
    @{
        Name = "微信"
        Installer = "$InstallFolderPath\WeChatSetup.exe"
        DownloadUrl = "https://example.com/WeChatSetup.exe"
    },
    @{
        Name = "钉钉"
        Installer = "$InstallFolderPath\DingTalkSetup.exe"
        DownloadUrl = "https://example.com/DingTalkSetup.exe"
    },
    @{
        Name = "阿里云盘"
        Installer = "$InstallFolderPath\AliyunDriveSetup.exe"
        DownloadUrl = "https://example.com/AliyunDriveSetup.exe"
    },
    @{
        Name = "Google Chrome"
        Installer = "$InstallFolderPath\ChromeSetup.exe"
        DownloadUrl = "https://example.com/ChromeSetup.exe"
    },
    @{
        Name = "网易云音乐"
        Installer = "$InstallFolderPath\NetEaseMusicSetup.exe"
        DownloadUrl = "https://example.com/NetEaseMusicSetup.exe"
    },
    @{
        Name = "向日葵"
        Installer = "$InstallFolderPath\XiaoSunflowerSetup.exe"
        DownloadUrl = "https://example.com/XiaoSunflowerSetup.exe"
    }
)

# 检查安装文件夹是否存在
if (-not (Test-Path -Path $InstallFolderPath)) {
    Write-Host "安装文件夹不存在!请检查路径:$InstallFolderPath"
    exit
}

# 安装程序
foreach ($program in $Programs) {
    $installerPath = $program.Installer
    $programName = $program.Name

    # 检查安装程序是否存在
    if (-not (Test-Path -Path $installerPath)) {
        Write-Host "$programName 安装程序不存在!自动下载中..."
        $downloadUrl = $program.DownloadUrl

        # 下载安装程序
        try {
            $webClient = New-Object System.Net.WebClient
            $webClient.DownloadFile($downloadUrl, $installerPath)
            Write-Host "$programName 下载完成!"
        } catch {
            Write-Host "无法下载 $programName 安装程序!请检查下载链接:$downloadUrl"
            continue
        }
    }

    # 执行安装程序
    Write-Host "开始安装 $programName ..."
    Start-Process -FilePath $installerPath -Wait
    Write-Host "$programName 安装完成!"
}

Write-Host "所有程序安装完成!"

在优化后的代码中,我们添加了一个DownloadUrl属性来指定每个程序的下载链接。如果安装文件夹中缺少某个程序的安装程序,则会自动下载该程序的安装程序并保存到指定的路径。下载使用System.Net.WebClient类进行,若下载失败会输出相应的错误信息。

请将https://example.com/替换为实际的下载链接

$InstallFolderPath = CPathToInstallFolder$Programs = Name = QQ Installer = $InstallFolderPathQQSetupexe Name = 微信 Installer = $InstallFolderPathWeChatSetupexe

原文地址: http://www.cveoy.top/t/topic/h9F9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录