2016-03-22 5 views
0

PowerShellでは、フォルダ内のすべてのファイルを個別に圧縮する必要がありますか?たとえば、フォルダに10個のファイルがあり、これは10個のzipを持つことを意味します。フォルダ内のすべてのファイルを個別に圧縮する方法は?

以下は私のコードですが、1つのファイルしか圧縮しません。

Add-Type -Path "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.IO.Compression.FileSystem.dll" 
function ZipFiles($zipfilename, $sourcedir) 
{ 
    Add-Type -Assembly System.IO.Compression.FileSystem 
    $compressionLevel = [System.IO.Compression.CompressionLevel]::Optimal 
    [System.IO.Compression.ZipFile]::CreateFromDirectory($sourcedir, 
     $zipfilename, $compressionLevel, $false) 
} 

ZipFiles "zippath" "sourcepath" 
+0

ループの中でそれを行いますか? –

+0

@ivan_pozdeevサンプルコードを表示してもよろしいですか?私はpowershellの新人です – johndoe

+0

@johndoe私の答えは助けましたか?私はどのように答えを達成したかについてのより良い説明が必要ですか? – Nick

答えて

2
  1. だから我々は、我々がします。ZipFiles関数に渡すのFolderListにフォルダごとに次に
  2. (-Directoryはフォルダのみを返す)のパスに
  3. 関数呼び出しをフォルダのリストを取得します次のようになります。ZipFiles "C:\Logs.zip" "C:\Logs"

    $folderlist = Get-ChildItem -Path C:\ -Directory 
    Foreach ($Folder in $folderlist) 
    {ZipFiles "$($Folder.Fullname).zip" "$($Folder.Fullname)"} 
    
関連する問題