将If/If Not语句添加到PowerShell中

将If/If Not语句添加到PowerShell中,powershell,Powershell,我们正在转向JumpCloud广告服务,随之而来的是来自JumpCloud控制台的自动部署命令。我已经创建了一个与Chocolate配合使用的脚本来安装一些应用程序,而那些不在Chocolate上的应用程序我将它们放在AWS上的S3存储桶中,我将它们绑定到Invoke WebRequest-Uri命令中,以拉取包,并将其复制到目标文件夹 我遇到的问题是,我希望命令能够运行,但我希望它检查并查看安装文件是否已经存在,如果已经存在,请转到下一项,如果没有,请复制文件 有人愿意给我一些建议吗?目前有7

我们正在转向JumpCloud广告服务,随之而来的是来自JumpCloud控制台的自动部署命令。我已经创建了一个与Chocolate配合使用的脚本来安装一些应用程序,而那些不在Chocolate上的应用程序我将它们放在AWS上的S3存储桶中,我将它们绑定到
Invoke WebRequest-Uri
命令中,以拉取包,并将其复制到目标文件夹

我遇到的问题是,我希望命令能够运行,但我希望它检查并查看安装文件是否已经存在,如果已经存在,请转到下一项,如果没有,请复制文件

有人愿意给我一些建议吗?目前有7个包正在被复制,所以我想我需要7个
if
语句

以下是我迄今为止尝试的代码:

if ( -not (Test-Path -path "C:\Windows\Temp\JC_ScheduledTasks")) {
     New-Item -Path "C:\Windows\Temp\JC_ScheduledTasks" -ItemType directory
}
但我不知道如何调整从AWS中提取的项目:

Invoke-WebRequest -Uri "cavo-deploy-virginia.s3.amazonaws.com/QualysCloudAgent.exe" -OutFile "c:\jumpcloud\QualysCloudAgent.exe"

因为您有一个文件数组,您希望对其执行相同的命令集。然后使用
foreach
foreach对象
使用简单循环

$DestinationFolder = 'c:\jumpcloud\'                                                       #'

# Define the array here or use Get-Content for a list from a text file
$Files = @('QualysCloudAgent.exe','example1.exe')

foreach ($File in $Files) {

    # Determine the destination for the file
    $DestinationFile = Join-Path $DestinationFolder $File

    # Validate if the file already exists
    if ( -not (Test-Path $DestinationFile)) {
        Invoke-WebRequest -Uri "cavo-deploy-virginia.s3.amazonaws.com/$File" -OutFile $DestinationFile
    }
}

如果您想查看是否存在一个文件,您想使用
测试路径
所以,我有这样一个:If(-not(Test Path-Path“C:\Windows\Temp\JC\u ScheduledTasks”){New Item-Path“C:\Windows\Temp\JC\u ScheduledTasks”-ItemType directory},但我不确定如何调整从AWS拉取的项:Invoke WebRequest-Uri“-OutFile“c:\jumpcloud\QualysCloudAgent.exe“对不起,不知道如何为代码设置格式。。。这有点新:扫描您用您尝试过的代码更新您的问题,哪些不起作用?因此,在本例中,IF语句上方的验证路径-如果文件不存在,我会为它设置什么来移动文件?我没有看到任何东西在那里说,如果文件存在继续,如果不复制文件。抱歉,如果这些都是愚蠢的问题,我只是刚刚开始学习,所以任何帮助都是值得赞赏的,我能够调整这个,让它工作!非常感谢你!