Очень много писал на батче, в итоге решил уйти от него совсем на ПС, начал как водиться с малого, скрипт работает, прошу указать на явные косяки из ряда: "так не делается" или "можно было сделать на много проще"
*для вин7
Код:
### ver.0.1
### Ищет последний скаченый системой googlechromestandaloneenterpriseXXXXXXX_msi.msi в BBCA
### и сохраняет его путем замены на файл сервере
###Определяем разрядность
function Get-Platform {if ([System.IntPtr]::Size -eq 4) {"x86"}
else {"x64"}}
$xx = Get-Platform
###Подстраиваем путь сурс под это дело
if ($xx -eq "x64") {
$Source = "C:\Program Files (x86)\BMC Software\BBCA\Tuner\.marimba\BBCA_ClientWorkstation"
} ELSE {
$Source = "C:\Program Files\BMC Software\BBCA\Tuner\.marimba\BBCA_ClientWorkstation"
}
###
$Dest = "\\servername\path"
$filter = "googlechromestandaloneenterprise"
$OldMsi = Get-ChildItem -Path $Dest | Where-Object {$_.Name -match $filter}
### Source
$GoogleMsi = Get-ChildItem -Path $Source -Recurse | Where-Object {$_.Name -match $filter} | sort LastWriteTime
$LastMSI = $GoogleMsi | select -Last 1
### Reports
echo "All files:"
$GoogleMsi | select -Property Name,LastWriteTime | Format-List
echo "Selected:"
$LastMSI | select -Property Name,LastWriteTime | Format-List
#Compare
If ($LastMSI.LastWriteTime -le $OldMsi.LastWriteTime) {
echo NEW: $LastMSI.LastWriteTime
echo Last: $OldMsi.LastWriteTime
echo "OK, no need update"
} ELSE {
echo NEW: $LastMSI.LastWriteTime
echo Last: $OldMsi.LastWriteTime
echo "Start copy process?"
pause
Remove-Item $OldMsi.FullName -Force
Copy-Item $LastMSI.FullName -Destination $Dest
$CopyedMsi = Get-ChildItem -Path $Dest | Where-Object {$_.Name -match $filter}
$CopyedMsi.FullName | rename-item -NewName googlechromestandaloneenterprise.msi
}
`