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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
これ何て呼びますか
あなたのお住いの地域で、これ、何て呼びますか?
-
メモのコツを教えてください!
メモを取るのが苦手です。 急いでメモすると内容がごちゃごちゃになってしまったり、ひどいときには全く読めない時もあります。
-
【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
【お題】 ・買ったばかりの自転車を分解してひと言
-
ハマっている「お菓子」を教えて!
この世には、おいしいお菓子がありすぎて……。 次何を食べたらいいか迷っています。 みなさんが今、ハマっている「お菓子」を教えてください!
-
【Excel VBA】Windowsの標準機能のみでExcelファイルをZIPファイルに圧縮する方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETでのzip圧縮について
-
圧縮(lzh)を解凍するvbのサン...
-
【.net framework 3.5】インス...
-
数字を8文字の英数字にハッシュ化
-
Googleドライブで全く知らない...
-
ZIPファイルの解凍方法
-
パワポの共同編集がしたいので...
-
フォルダが勝手に移動、エクス...
-
Outlookの添付ファイル欄を広げ...
-
outlookでadobepdfファイルが送...
-
現在Macプロを使用しているので...
-
ThunderBirdで返信時の添付ファ...
-
Excelの添付ファイルが本文中に...
-
エクセルのブックの共有をする...
-
MIBの取得ができません
-
Gメール、添付ファイルの保存方法
-
テキストファイル処理の確認って?
-
ISO-2022-JPという名の添付ファ...
-
Thunderbirdの添付が自動で開い...
-
Windows7でのアクセス許可の変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.Netでファイル圧縮する方法...
-
VB.NETでのzip圧縮について
-
Powershellでzip圧縮が出来ない
-
パスワード付き圧縮を作成する...
-
bmp画像をtiff圧縮する方法
-
パスワード付きzip圧縮を連続処...
-
圧縮(lzh)を解凍するvbのサン...
-
フォルダの中のフォルダも圧縮...
-
【.net framework 3.5】インス...
-
jpeg画像をより小さく圧縮する...
-
圧縮されたPDFからテキストを抽...
-
javaでgifをLZW圧縮する方法
-
C#でcabファイルをつくる
-
LZ法で圧縮したデータについて
-
VB.netでのZIP圧縮について
-
RARファイル
-
数字を8文字の英数字にハッシュ化
-
VB2005 メール添付ファイルが...
-
Googleドライブで全く知らない...
-
見覚えの無いフォルダが勝手に...
おすすめ情報