質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

WSH

WSH(Windows Script Host)とは、Windows上でテキストファイルに記述したJavaScriptやVBScriptなどのスクリプトを実行するホスト環境のことです。COMを通じたレジストリ操作やWMIへのアクセスが可能で、複雑な処理も行うことができます。

Q&A

解決済

2回答

1349閲覧

WSHでVBScriptを使用してファイルを圧縮する最もシンプルなアルゴリズムを教えてください。

kyosanta

総合スコア15

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

WSH

WSH(Windows Script Host)とは、Windows上でテキストファイルに記述したJavaScriptやVBScriptなどのスクリプトを実行するホスト環境のことです。COMを通じたレジストリ操作やWMIへのアクセスが可能で、複雑な処理も行うことができます。

0グッド

0クリップ

投稿2017/10/03 06:33

WSHの世界へはファイルの一斉リネームや作業自動化が目当てで入りました。
現在は圧縮の部分を勉強中です。

そこで、様々なオンラインのリソースを拝見しましたがどれもエラー管理を含めたりや動作に一癖あるコードたちで仕組みの勉強には向きませんでした。
現在探しているのは最もシンプルな方法で圧縮できるアルゴリズムです。

-Dim objFSO = WScript.CreateObject("Scripting.FileSystemObject")"-
-Set objFile = objFSO.CreateTextFile(ZipFile, True)-

を用いてwindows標準の機能を使って圧縮を試みたいのです。
前文にもある通り純粋に圧縮の過程を学びたいので、エラー処理の部分は不要です。

また、拝見したコードの多くはZIPファイルを作成しその中にコピーしたいファイルを書き込むといったようなものですがこれが一般的でしょうか。

参考までに、WindowsPowerShellも検討してはみましたが、コマンドレット等新しく覚えるにはいささか煩雑で諦めました。
なんとかWSHでかつVBScriptを使う方向で行きたいと思っています。

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

前文にもある通り純粋に圧縮の過程を学びたいので、エラー処理の部分は不要です。

ということなので、こちら([WINDOWS] ZIPをスクリプトから実行したい)を紹介しておきます。

スクリプトからいくつかのファイルをまとめて圧縮するためのコマンドをさがしたところ、FreeBSDなどにあるzipコマンドのようなものがWindowsにはないらしい。

で、上記のリンクにもありますが、色々出回っているスクリプトの大元はどうやら、こちら(ZIPファイルを作成/追加/置換/削除/展開/表示するバッチファイル)のようです。
※紹介記事(Windows XPでコマンドラインからzip圧縮するためのスクリプト

投稿2017/10/03 08:34

編集2017/10/03 16:42
sazi

総合スコア25174

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kyosanta

2017/10/03 09:53

ありがとうございます。 大変参考になりました。 紹介して頂いたソース、じっくり研究させていただきます。
guest

0

ご質問からは、圧縮処理そのものというよりはアーカイブ化の流れを把握したいということのように感じました。
zip以外ですと、cab形式での対応もできるかと思います。
検索すると下記ページがありましたので紹介します。

WSHでCABファイルをつくる。
http://kmaru.hatenablog.com/entry/20060214/1139931079

リンク先はJScriptでの実装のようでしたので、VBScriptでの実装を作成されるとよいかと思います。

また、拝見したコードの多くはZIPファイルを作成しその中にコピーしたいファイルを書き込むといったようなものですがこれが一般的でしょうか。

Windows標準機能のzip圧縮を用いて、という実装であれば一般的に行われる手続きだと思います。

投稿2017/10/03 06:48

編集2017/10/03 06:51
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kyosanta

2017/10/03 08:22

ありがとうございます。 コードが随分すっきりしましたね。 と言うことはzipやrarなども同じ要領で作成できそうですね。 ZIPやrar作成に際しては紹介していただいたソースにWScript.CreateObjectのScripting.FileSystemObjectを使って作成出来るのでしょうか? それとも、cabのような専用のメソッドないしプログラムidで指定した特定のプログラムを使わねばならないのでしょうか? よろしくお願いします。
退会済みユーザー

退会済みユーザー

2017/10/03 09:42

Windowsが提供する機能の範囲内であればWSH上の処理として記述可能な場合もありますが、そうではない場合は外部プログラムを呼び出す形となるかと思います。 圧縮であれば7-Zipやlhaplus等のアプリケーションを利用することでの対応となります。
kyosanta

2017/10/03 10:12

ありがとうございます! 大変勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問