
Powershellでzip圧縮しようとしているのですが、
・Powershell ISEで実行すると正常に圧縮
・コマンドプロンプトで実行すると、「圧縮(zip形式)フォルダーエラー」が発生し、圧縮できない
という現象が発生しています。コマンドプロンプトで実行できるようにしたいのですが、原因がわからないので、御教示をお願いします。
・環境
Windows XP SP3
Powershell 2.0
・Powershellソース
# 引数チェック
# 引数の数が2以外の時は異常終了
if ($args.Length -ne 2 )
{
write-host "引数エラー"
exit 2;
}
# 圧縮zipファイル名
$ZipFilePath = $Args[0]
# 圧縮対象ファイル名
$TargetItems = $Args[1]
# 圧縮先パス存在チェック
if((Test-Path (Split-Path $ZipFilePath -Parent)) -ne $True){
write-host "圧縮先パスエラー"
exit 3;
}
# 圧縮対象ファイル存在チェック
if((Test-Path ($TargetItems)) -ne $True){
write-host "圧縮対象ファイルエラー"
exit 4;
}
# Zipファイルが存在する場合は削除
if(Test-Path -Path $ZipFilePath)
{
Remove-Item -Path $ZipFilePath
}
# Zipファイル作成
Set-Content $ZipFilePath ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18))
(dir $ZipFilePath).IsReadOnly = $false
# Zipファイルにファイルを投入
$shell = New-Object -com Shell.Application
$zipfile = $shell.NameSpace($ZipFilePath)
$archivedItems = New-Object Collections.ArrayList
# 圧縮対象ファイルの数だけループ
foreach($item in ($TargetItems | %{Get-Item -Path $_}))
{
# ファイルをZipファイルに投入。圧縮処理は非同期なので、その終了を待つ。
$archivedItems.Add($item) | Out-Null
$zipfile.CopyHere($item.FullName)
while($true)
{
if($archivedItems.Count -eq $zipfile.Items().Count)
{
break
}
Start-Sleep -Seconds 1
}
}
write-host "処理終了"
exit 0

No.1ベストアンサー
- 回答日時:
変数名やコメント等大体同じようなので、下記ページのものを改変された感じでしょうか
http://memo-space.blogspot.com/2010/01/powershel …
引数1が固めたいzipファイル名で、それ以降に圧縮対象ファイルのパス書く感じですよね
ISEで試していないんですが、cmdだとうまく行ったりいかなかったりという感じじゃ無いでしょうか
ざっと見る限り最後の待ち部分に問題ありそうな気がしましたけど、自分も不慣れなものでどこがとはぱっとわからなかったです。
自分の勉強がてら書いてみたら動いたっぽいので、一応貼っておきますね
ある程度相対パスへ対処できるように等なってるかもしれません。
確認OSはWin7です。
http://ideone.com/l19NY
ありがとうございます。
Windows7だと自分のスクリプトで動きますね…。
何故WindowsXPだと駄目なのか…OSの違い?
ソースもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ノートパソコン パソコンでmp4の動画ファイルを10個くらい(合計20GB)をフォルダに入れて、容量を軽くしてしまお 2 2023/02/06 02:08
- iPhone(アイフォーン) iPhone ファイル iPhoneのファイルで写真をzipに圧縮した後もう一度展開すると画質は変わ 3 2022/10/21 21:53
- Windows 8 メール送信、zipファイル PDFについて 回答お願いいたします。 Windows8 メールはサクラ 1 2022/05/12 17:49
- PDF PDFファイルの圧縮 1 2022/10/04 13:48
- その他(IT・Webサービス) サンプルファイルのダウンロードについて 2 2023/02/11 02:46
- Android(アンドロイド) androidでzip圧縮してから転送できるファイラー 3 2022/12/11 10:22
- 画像編集・動画編集・音楽編集 連続質問です 動画ファイルの圧縮時のビットレートというのについて教えてください 2 2023/08/06 11:50
- その他(コンピューター・テクノロジー) 圧縮ファイル 解凍すると中身が消える? 3 2022/05/18 15:21
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#でcabファイルをつくる
-
圧縮されたPDFからテキストを抽...
-
ファイルを圧縮させる
-
VB.NETでのzip圧縮について
-
Googleドライブで全く知らない...
-
現在Macプロを使用しているので...
-
見覚えの無いフォルダが勝手に...
-
フォルダが勝手に移動、エクス...
-
BeckyにURLのショートカットを...
-
添付ファイルが送れない
-
ISO-2022-JPという名の添付ファ...
-
エクスプローラーによってファ...
-
音声ファイルの共有方法につい...
-
Excelの添付ファイルが本文中に...
-
NotesのビューをEXCELシートに...
-
ThunderBirdで返信時の添付ファ...
-
フリーアドレスからの添付
-
outlookのフォルダの順番の並べ...
-
office - 添付ファイルを添付し...
-
Outlook添付のTIFFファイルを自...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETでのzip圧縮について
-
圧縮(lzh)を解凍するvbのサン...
-
VB.Netでファイル圧縮する方法...
-
【.net framework 3.5】インス...
-
数字を8文字の英数字にハッシュ化
-
Powershellでzip圧縮が出来ない
-
パスワード付きzip圧縮を連続処...
-
Perl Magickのファイルサイズに...
-
LZ法で圧縮したデータについて
-
Excel2003 検索後コピー貼付マ...
-
C#でcabファイルをつくる
-
bmp画像をtiff圧縮する方法
-
jpeg画像をより小さく圧縮する...
-
RARファイル
-
【VB】フォルダを圧縮処理したい
-
フォルダの中のフォルダも圧縮...
-
パスワード付き圧縮を作成する...
-
VB.netでのZIP圧縮について
-
Googleドライブで全く知らない...
-
見覚えの無いフォルダが勝手に...
おすすめ情報