Feature: Added Auto Renamer
Added the ability to rename the folders to the newest version of Chrome
This commit is contained in:
parent
c5a644b2d4
commit
b64e18779f
5 changed files with 103 additions and 2 deletions
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
|
||||
/Template
|
|
@ -127,3 +127,7 @@ if ($config.options.enableForcedVersion) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($config.options.enableNumberedVersion) {
|
||||
& $PSScriptRoot\Rename.ps1
|
||||
}
|
|
@ -10,6 +10,7 @@ The script reads its configuration from a JSON file named `config.json` located
|
|||
|
||||
- `enableRegularVersion`: Boolean flag to enable the downloading of the regular version of Chrome.
|
||||
- `enableForcedVersion`: Boolean flag to enable the downloading of the forced update version of Chrome.
|
||||
- `enableNumberedVersion`: Boolean flag to enable the automatic renaming of the folder to the newest version of Chrome.
|
||||
- `logDateFormat`: A string defining the format of timestamps in log messages.
|
||||
|
||||
#### Date Configuration
|
||||
|
@ -62,7 +63,8 @@ Output: <code>29-06-2024 15:19:30</code>
|
|||
{
|
||||
"options": {
|
||||
"enableRegularVersion": true,
|
||||
"enableForcedVersion": false
|
||||
"enableForcedVersion": false,
|
||||
"enableNumberedVersion": false
|
||||
},
|
||||
"logDateFormat": "yyyy'/'MM'/'dd hh:mm:ss tt"
|
||||
}
|
||||
|
|
92
Rename.ps1
Normal file
92
Rename.ps1
Normal file
|
@ -0,0 +1,92 @@
|
|||
# Read configuration from JSON file
|
||||
$configPath = "$PSScriptRoot\config.json"
|
||||
$config = Get-Content -Path $configPath | ConvertFrom-Json
|
||||
|
||||
$destinationFolder = Join-Path -Path $PSScriptRoot -ChildPath "Chrome - VERSION"
|
||||
$forceUpdateFolder = Join-Path -Path $PSScriptRoot -ChildPath "Chrome - VERSION_force_update"
|
||||
|
||||
function Log-Message {
|
||||
param (
|
||||
[string]$message
|
||||
)
|
||||
$timestamp = Get-Date -Format $dateFormat
|
||||
Write-Output "[$timestamp] - $message" | Out-File -Append -FilePath "$PSScriptRoot\Log.txt" -Encoding utf8
|
||||
}
|
||||
|
||||
if ($config.options.enableRegularVersion -and -not $config.options.enableForcedVersion) {
|
||||
$msiPath = "$PSScriptRoot\Chrome - VERSION\Files\googlechromestandaloneenterprise64.msi"
|
||||
Start-Process -FilePath "msiexec.exe" -ArgumentList "/i `"$msiPath`" /quiet" -Wait
|
||||
$chromeRegPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
|
||||
$chromeVersion = Get-ChildItem -Path $chromeRegPath |
|
||||
Get-ItemProperty |
|
||||
Where-Object { $_.DisplayName -like "*Google Chrome*" } |
|
||||
Select-Object -ExpandProperty DisplayVersion
|
||||
# Rename the folder if the version was retrieved
|
||||
if ($chromeVersion) {
|
||||
$newFolderName = "Chrome - $chromeVersion"
|
||||
$newFolderPath = Join-Path -Path $PSScriptRoot -ChildPath $newFolderName
|
||||
try {
|
||||
Rename-Item -Path $destinationFolder -NewName $newFolderName -ErrorAction Stop
|
||||
Log-Message "Success: Folder renamed to $newFolderName"
|
||||
} catch {
|
||||
Log-Message "Error: Failed to rename folder - $_"
|
||||
}
|
||||
} else {
|
||||
Log-Message "Warning: Chrome version could not be determined. Folder was not renamed."
|
||||
}
|
||||
}
|
||||
elseif ($config.options.enableForcedVersion -and -not $config.options.enableRegularVersion) {
|
||||
$msiPath = "$PSScriptRoot\Chrome - VERSION_force_update\googlechromestandaloneenterprise64.msi"
|
||||
Start-Process -FilePath "msiexec.exe" -ArgumentList "/i `"$msiPath`" /quiet" -Wait
|
||||
$chromeRegPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
|
||||
$chromeVersion = Get-ChildItem -Path $chromeRegPath |
|
||||
Get-ItemProperty |
|
||||
Where-Object { $_.DisplayName -like "*Google Chrome*" } |
|
||||
Select-Object -ExpandProperty DisplayVersion
|
||||
# Rename the folder if the version was retrieved
|
||||
if ($chromeVersion) {
|
||||
$newFolderName = "Chrome - $chromeVersion" + "_force_update"
|
||||
$newFolderPath = Join-Path -Path $PSScriptRoot -ChildPath $newFolderName
|
||||
try {
|
||||
Rename-Item -Path $forceUpdateFolder -NewName $newFolderName -ErrorAction Stop
|
||||
Log-Message "Success: Folder renamed to $newFolderName"
|
||||
} catch {
|
||||
Log-Message "Error: Failed to rename folder - $_"
|
||||
}
|
||||
} else {
|
||||
Log-Message "Warning: Chrome version could not be determined. Folder was not renamed."
|
||||
}
|
||||
}
|
||||
elseif ($config.options.enableForcedVersion -and $config.options.enableRegularVersion) {
|
||||
$msiPath = "$PSScriptRoot\Chrome - VERSION_force_update\googlechromestandaloneenterprise64.msi"
|
||||
Start-Process -FilePath "msiexec.exe" -ArgumentList "/i `"$msiPath`" /quiet" -Wait
|
||||
|
||||
$chromeRegPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
|
||||
$chromeVersion = Get-ChildItem -Path $chromeRegPath |
|
||||
Get-ItemProperty |
|
||||
Where-Object { $_.DisplayName -like "*Google Chrome*" } |
|
||||
Select-Object -ExpandProperty DisplayVersion
|
||||
|
||||
# Rename both folders if the version was retrieved
|
||||
if ($chromeVersion) {
|
||||
# Regular version folder
|
||||
$newRegularFolderName = "Chrome - $chromeVersion"
|
||||
try {
|
||||
Rename-Item -Path $destinationFolder -NewName $newRegularFolderName -ErrorAction Stop
|
||||
Log-Message "Success: Folder renamed to $newRegularFolderName"
|
||||
} catch {
|
||||
Log-Message "Error: Failed to rename folder - $_"
|
||||
}
|
||||
|
||||
# Forced version folder
|
||||
$newForcedFolderName = "Chrome - $chromeVersion" + "_force_update"
|
||||
try {
|
||||
Rename-Item -Path $forceUpdateFolder -NewName $newForcedFolderName -ErrorAction Stop
|
||||
Log-Message "Success: Folder renamed to $newForcedFolderName"
|
||||
} catch {
|
||||
Log-Message "Error: Failed to rename folder - $_"
|
||||
}
|
||||
} else {
|
||||
Log-Message "Warning: Chrome version could not be determined. Folders were not renamed."
|
||||
}
|
||||
}
|
|
@ -1,7 +1,8 @@
|
|||
{
|
||||
"options": {
|
||||
"enableRegularVersion": true,
|
||||
"enableForcedVersion": false
|
||||
"enableForcedVersion": false,
|
||||
"enableNumberedVersion": false
|
||||
},
|
||||
"logDateFormat": "dd/MM/yyyy HH:mm:ss"
|
||||
}
|
Loading…
Reference in a new issue