2017-04-12 2 views
0

ファイルを処理した後、毎日受け取ったすべての販売データを圧縮し、zipファイルの名前をsaletransactions_mmddyyyy.zipに変更しようとしています。私が持っているスクリプトは、個々のファイルを圧縮しようとしています。どのようにすべてのファイルを1つのzipファイルに変更するのですか?ここ指定したフォルダ内のすべてのファイルを圧縮してアーカイブします

あなたのコードの最後の行に
$srcPath = "\\networkshare\test\sale" 
$destPath = "\\networkshare\test\sale\archive\" 
$ext = Get-ChildItem -Path $srcPath | Where-Object { ($_.Extension -eq ".txt") } 

Set-Alias sz "\\networkshare\test\7z.exe" 

foreach ($file in $ext) { 
    $name = $file.Name 
    $directory = $file.DirectoryName 
    $zipfile = $name.Replace(".txt", ".7z") 
    sz a -t7z "$destPath\$($file.BaseName).zip" $file 
} 

答えて

0

、このラインで

sz a -t7z "$destPath\$($file.basename).zip" $file 

、あなたが名前を付けるファイルと同じであるzipアーカイブにファイルを追加するには7zipをを言っていますあなたは追加しています。つまり、出力zipは常にファイルの名前と同じになり、入力ファイルごとに1つのzipファイルが得られます。

月次アーカイブにすべてを追加する場合は、まず出力ファイルの名前をコードの上部のどこかに定義します。

$month = "03_2017" 

次に、最後の行をこれに変更すると、行こうと思うでしょう。

7z a -t7z $destPath\$month.zip" $file 
関連する問題