Windows:如果目录不存在则仅运行安装启动脚本

Windows:如果目录不存在则仅运行安装启动脚本

我想通过启动脚本安装一些程序,但第一次运行后它就会重新安装,浪费时间和覆盖。这是 Server 2008 R2。

我在某处发现了这个

IF NOT "C:\Program Files\Microsoft Security Client"=="" 
(
    echo "Already Installed"
) 
else 
(
    "\\192.168.1.104\Programs\Microsoft Security Essentials\Microsoft Security Essentials.exe" /s /runwgacheck
)

IF NOT "C:\Program Files (x86)\Adobe\Reader 10.0"=="" 
(
    echo "Already Installed"
) 
else 
(
    "\\192.168.1.104\Programs\Adobe Reader\AdbeRdr1012_en_US.exe" /sAll /rs /msi EULA_ACCEPT=YES
)

但它不起作用。我该怎么做呢?

答案1

您所需要的IF EXIST不仅仅是IF批量编程。

例如

IF NOT EXIST "C:\Program Files\Microsoft Security Client" (
  :: Install product
)

答案2

既然您正在运行 AD,为什么不尝试通过 MSI 和 GPO 分发这些产品?

答案3

让脚本放置一个标志、创建一个文本文件或其他内容,当安装完成时,脚本将在后续运行中查找该文件。如果找到该标志,它将结束该过程并且不会重新安装。如果标志不存在,它将完成安装。

答案4

现在是 2015 年,请查看一些 PowerShell。

如果(!(测试路径-路径“$Env:ProgramFiles \ Microsoft Security Client”)){

Write-Host "Not Installed, Installing..."
iex "\\192.168.1.104\Programs\Microsoft Security Essentials\Microsoft Security Essentials.exe /s /runwgacheck"

}

如果(!(测试路径-路径“${Env:ProgramFiles(x86)}\Adobe\Reader 10.0”)){

Write-Host "Not Installed, Installing..."
iex "\\192.168.1.104\Programs\Adobe Reader\AdbeRdr1012_en_US.exe /sAll /rs /msi EULA_ACCEPT=YES"

}

相关内容