Jump to content

Install Calibre Ebook Manager with PowerShell


Recommended Posts

Posted

I made a install script for Calibre to do a Silent install.

UPDATED VERSION 2 With auto detect if Invoke-WebRequest exists

Improvements are welcome!

# Silent Install Calibre
# https://calibre-ebook.com/download

# Path for the workdir
$workdir = "c:\installer\"

# Check if work directory exists if not create it

If (Test-Path -Path $workdir -PathType Container)
{ Write-Host "$workdir already exists" -ForegroundColor Red}
ELSE
{ New-Item -Path $workdir  -ItemType directory }

# Download the installer

$source = "https://calibre-ebook.com/dist/win32"
$destination = "$workdir\calibre.msi"
Invoke-WebRequest $source -OutFile $destination

# Start the installation

msiexec.exe /i "$workdir\calibre.msi" /q

# Wait XX Seconds for the installation to finish

Start-Sleep -s 35

# Remove the installer

rm -Force $workdir\c*

 

For Windows 7 please change 

$source = "https://calibre-ebook.com/dist/win32"
$destination = "$workdir\calibre.msi"
Invoke-WebRequest $source -OutFile $destination

To

$WebClient = New-Object System.Net.WebClient
$WebClient.DownloadFile("https://calibre-ebook.com/dist/win32","$workdir\calibre.msi")

Since Powershell in Windows 7 does not support the Invoke-WebRequest

 

Posted

Version 2

This version will check if the Invoke-WebRequest Command exists or not. For legacy Systems like Windows 7 you than only have one Script and don't need to change things in Pulseway

# Silent Install Calibre
# https://calibre-ebook.com/download

# Path for the workdir
$workdir = "c:\installer\"

# Check if work directory exists if not create it

If (Test-Path -Path $workdir -PathType Container)
{ Write-Host "$workdir already exists" -ForegroundColor Red}
ELSE
{ New-Item -Path $workdir  -ItemType directory }

# Download the installer

$source = "https://calibre-ebook.com/dist/win32"
$destination = "$workdir\calibre.msi"

# Check if Invoke-Webrequest exists otherwise execute WebClient

if (Get-Command 'Invoke-Webrequest')
{
     Invoke-WebRequest $source -OutFile $destination
}
else
{
    $WebClient = New-Object System.Net.WebClient
    $webclient.DownloadFile($source, $destination)
}

# Start the installation

msiexec.exe /i "$workdir\calibre.msi" /q

# Wait XX Seconds for the installation to finish

Start-Sleep -s 35

# Remove the installer

rm -Force $workdir\c*

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...