Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Прошу указать на ошибки (http://forum.oszone.net/showthread.php?t=305591)

c4uran 18-09-2015 10:55 2554680

Прошу указать на ошибки
 
Очень много писал на батче, в итоге решил уйти от него совсем на ПС, начал как водиться с малого, скрипт работает, прошу указать на явные косяки из ряда: "так не делается" или "можно было сделать на много проще"
*для вин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

}

`


Время: 16:35.

Время: 16:35.
© OSzone.net 2001-