0

私はまだ非常に新しいので、たとえば、いくつかのフォルダーを圧縮して新しく作成したフォルダーにコピーすることにより、いくつかのフォルダーをバックアップするスクリプトが1つあります。

ここで、zip とコピーのプロセスが成功したかどうかを知りたいと思います。成功したとは、コンピューターが圧縮してコピーしたかどうかを意味します。内容を確認したくないので、スクリプトが適切なフォルダーを取得して圧縮したと仮定します。これが私のスクリプトです:

$backupversion = "1.65"
# declare variables for zip 
$folder = "C:\com\services" , "C:\com\www"
$destPath  = "C:\com\backup\$backupversion\"

# Create Folder for the zipped services

New-Item -ItemType directory -Path "$destPath"

#Define zip function


    function create-7zip{
    param([String] $folder, 
    [String] $destinationFilePath)
    write-host $folder $destinationFilePath
    [string]$pathToZipExe = "C:\Program Files (x86)\7-Zip\7zG.exe";
    [Array]$arguments = "a", "-tzip", "$destinationFilePath", "$folder";
    & $pathToZipExe $arguments;
    }

        Get-ChildItem $folder | ? { $_.PSIsContainer} | % {
     write-host $_.BaseName $_.Name;
     $dest= [System.String]::Concat($destPath,$_.Name,".zip");
     (create-7zip $_.FullName $dest)
     }

これで、parentfolder が新しく作成されたフォルダーであるかどうかを確認できます。または、作成したサブフォルダーに zip フォルダーがあるかどうかを確認できます。

どのような方法をお勧めしますか? 私はおそらくこの方法を知っているだけですが、これを行うには無数の方法があります。あなたの考えは?唯一のルールは、powershell を使用することです。

前もって感謝します

4

2 に答える 2

4

Try and Catchを tryでラップしてメソッドを使用してみて、(create-7zip $_.FullName $dest)エラーをキャッチできます。

Try{ (create-7zip $_.FullName $dest) }
Catch{ Write-Host $error[0] }

これTryにより関数が実行create-7zipされ、多くのエラーがシェルに書き込まれます。

于 2013-08-30T13:05:21.930 に答える