Skript, mis arhiveerib etteantud laiendiga failid - PowerShell: Difference between revisions
From ICO wiki
Jump to navigationJump to search
(Created page with '==Ülesanne== Loo skript, mis küsib kasutaja käest faililaiendi (näiteks .txt) ja asukoha (ketta või kataloogi) ning pakib kõik sellest kataloogist leitud vastava laiendiga …') |
No edit summary |
||
Line 1: | Line 1: | ||
==Ülesanne== | ==Ülesanne== | ||
Loo skript, mis küsib kasutaja käest faililaiendi (näiteks .txt) ja asukoha (ketta või kataloogi) ning pakib kõik sellest kataloogist leitud vastava laiendiga failid .zip arhiiviks failid-aasta-kuu-kp.zip (näiteks failid-2011-01-24.zip) | Loo skript, mis küsib kasutaja käest faililaiendi (näiteks .txt) ja asukoha (ketta või kataloogi) ning pakib kõik sellest kataloogist leitud vastava laiendiga failid .zip arhiiviks failid-aasta-kuu-kp.zip (näiteks failid-2011-01-24.zip) | ||
==Skript== | |||
<source lang="powershell"> | |||
# Add-Zip funktsioon pärineb (paari pisimuudatusega) David Aikeni blogist (MSDN): | |||
# http://blogs.msdn.com/b/daiken/archive/2007/02/12/compress-files-with-windows-powershell-then-package-a-windows-vista-sidebar-gadget.aspx | |||
function Add-Zip | |||
{ | |||
param([string]$zipfilename) | |||
if(-not (test-path($zipfilename))) | |||
{ | |||
set-content $zipfilename ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18)) | |||
(dir $zipfilename).IsReadOnly = $false | |||
} | |||
$zipPackage = (new-object -comobject Shell.Application).NameSpace((dir $zipfilename).FullName) | |||
foreach($file in $input) | |||
{ | |||
Write-host "Lisame faili:" $file | |||
$zipPackage.CopyHere($file.FullName) | |||
Start-sleep -milliseconds 500 | |||
} | |||
} | |||
Write-host "Sisesta laiend: " | |||
$laiend = Read-host | |||
$laiend = $laiend.TrimStart(".") | |||
Write-host "Sisesta kataloog: " | |||
$asukoht = Read-host | |||
$kuupaev = Get-Date -format yyyy-MM-dd | |||
$failinimi = "failid-" + $kuupaev + ".zip" | |||
Write-Host "Arhiiv"$failinimi | |||
get-childitem -recurse $asukoht\*.$laiend | add-zip $failinimi | |||
</source> | |||
==Teadaolevad puudused== | |||
* Kõikvõimalikud veasituatsioonid (nt zip faili ei õnnestu ühel või teisel põhjusel luua) on katmata. | |||
* Kui ühtegi faili ei leita, võiks sellest ka kasutajat teavitada. Praegu jääb mulje, et zip tehakse siiski valmis. |
Revision as of 00:24, 28 January 2011
Ülesanne
Loo skript, mis küsib kasutaja käest faililaiendi (näiteks .txt) ja asukoha (ketta või kataloogi) ning pakib kõik sellest kataloogist leitud vastava laiendiga failid .zip arhiiviks failid-aasta-kuu-kp.zip (näiteks failid-2011-01-24.zip)
Skript
# Add-Zip funktsioon pärineb (paari pisimuudatusega) David Aikeni blogist (MSDN):
# http://blogs.msdn.com/b/daiken/archive/2007/02/12/compress-files-with-windows-powershell-then-package-a-windows-vista-sidebar-gadget.aspx
function Add-Zip
{
param([string]$zipfilename)
if(-not (test-path($zipfilename)))
{
set-content $zipfilename ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18))
(dir $zipfilename).IsReadOnly = $false
}
$zipPackage = (new-object -comobject Shell.Application).NameSpace((dir $zipfilename).FullName)
foreach($file in $input)
{
Write-host "Lisame faili:" $file
$zipPackage.CopyHere($file.FullName)
Start-sleep -milliseconds 500
}
}
Write-host "Sisesta laiend: "
$laiend = Read-host
$laiend = $laiend.TrimStart(".")
Write-host "Sisesta kataloog: "
$asukoht = Read-host
$kuupaev = Get-Date -format yyyy-MM-dd
$failinimi = "failid-" + $kuupaev + ".zip"
Write-Host "Arhiiv"$failinimi
get-childitem -recurse $asukoht\*.$laiend | add-zip $failinimi
Teadaolevad puudused
- Kõikvõimalikud veasituatsioonid (nt zip faili ei õnnestu ühel või teisel põhjusel luua) on katmata.
- Kui ühtegi faili ei leita, võiks sellest ka kasutajat teavitada. Praegu jääb mulje, et zip tehakse siiski valmis.