我想通过启动脚本安装一些程序,但第一次运行后它就会重新安装,浪费时间和覆盖。这是 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"
}