[Windows]batとvbsでzip化する!(ネットワーク越しのディレクトリコピーもするよ)

bat vbs zip dir copy

 

 

こんにちは。ナガオカ(@boot_kt)です。

 


Windowsの標準の機能でzip化しようとすると右クリックしかありません

zip化するdosコマンドは無いため、batでzip化することはできません

コマンドラインでzip化するためには7zip等、コマンドラインのインタフェースを準備してくれているソフトをインストールする必要があります

 

しかしっ!!

ソフトをインストールできない場合もあるでしょう!!

 

この記事ではソフトをインストールせずにzip化するbatを紹介します!

この記事のザックリした内容
◆対象読者

  • コマンド(bat/vbs)でzip化したい
  • ソフトをインストールせず、Windows標準の機能だけで実現したい
  • batでサーバーからローカルへコピーしてzip化もしたい

 

◆解決できるかも知れないお悩み

  • ソフトをインストールしなくても、bat(vbs)でzip化したい

 

 

 

 

 

Windowsにはzip化するコマンドは無いの?

 

無いです!

 

右クリックでzip化機能を提供してるのに、、、

 

なんでbatで使えるコマンドが無いんだあーーーー!!!!

 

と思って探しまくったけど、やっぱり無いんですよ

 

 

で、ググりまくると、、、、

 

VBスクリプトでできるよ

 

という情報があった!!!!

 

 

『VBスクリプトでzip化する』という視点でググりまくりました!!

 

zip化を実現してくれるVBスクリプトを教えてくださっている記事は何本かありました(ありがとうございます!)

 

何本か試してみたところ、確かにzip化してくれて僕が思ってるようなことはできるんだけど・・・・

理由は分からないんだけど、zip化してくれないファイルがあったんだよね

今回zip化したい目的はディレクトリ全体をバックアップしたいので、zip化してくれないファイルがあるのはちょいまずいなぁと・・・・

 

で、色々試した結果、この記事で紹介するVBスクリプトに辿り着きました

もしかしたら他にもzip化してくれないファイルがあるかも知れないけど、ひとまずはこれで。

 

紹介するbatとvbsの簡単な説明

やりたいこと

  1. サーバーにあるディレクトリ(0個以上)をローカルへバックアップ目的でコピーする
  2. コピーしたディレクトリはzip化して、zipのファイル名に日付と時刻を付与する
  3. この処理はタスクスケジューラに登録して定期的に動かす

 

プログラム構成

  • BkupMain.bat
    1. サーバーのディレクトリをネットワークドライブとして接続する
    2. ネットワークドライブからローカルへコピーをする
    3. MakeZip.vbsを呼び出す
  • MakeZip.vbs
    1. 圧縮処理をする
    2. 圧縮処理が終了したかどうかを3秒毎に判断する
    3. 圧縮処理が終了していないなら処理続行
    4. 圧縮処理が終了したのならプログラム終了

 

batプログラムとvbsプログラム

では、プログラムを以下に貼り付けておきます

GitHubにも置いてます
dir_copy_and_zip | GitHub

 

bat(BkupMain.bat)

 

vbs(MakeZip.vbs)

応用したい方に…

batとvbs、2本のプログラムを管理するのって面倒だったりします

batの中でvbsファイルを生成して、使ったら削除して、みたいなことをすると、batの1本だけを管理すればオッケーみたいなこともできます

 

↓以前僕が作ったプログラムでは、batの中でTeraTermマクロを生成するということをやっています

batとTeraTermマクロの組み合わせ | GitHub

 

別にこのやり方が良いってワケじゃなく、こういうやり方もありますよというだけの話です

 

広告




 

さいごに、

  • ソフトをインストールするな
  • インターネットにつなげるな
  • SubversionとかRedmine等ツールを使うな
  • Excelファイルで全て管理せよ!!!

と、まぁ、人力手作業を大好きな会社の是非は置いときますが、

 

個人的には属人要素(人力、手作業、記憶力、チェックシート、気を付ける)に頼ってはいけないと考えています

 

間違えない or 間違いに気付くような仕組みが大切、ラクすればするほど質は上がると思っています

 

しかしソフトを入れるなみたいな制約が多い場合には、OSが持つ機能だけでなんとかする必要があります

今回のバックアップ用batとzip化用vbsはそんな制約の中で調べて作りました

 

Pythonとかインストールできればもっとラクに作れたとは思うんですけど、まぁ、苦肉の策です

 

広告




 

参考書籍

 


 

プログラミング のレッスンに興味がある方、レッスン内容を聞いてみたい方、なんなりとお問い合わせください。
無料体験レッスンもありますのでお気軽にどうぞ!!!

 

 

bat vbs zip dir copy

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUTこの記事をかいた人

Windows/Mac/Linuxを使う現役システムエンジニア&プログラマ。オープン系・組み込み系・制御系・Webシステム系と幅広い案件に携わる。C言語やC#やJava等数多くのコンパイラ言語を経験したが、少し飽きてきたので、最近はRubyやPython、WordPressなどのWeb系を修得中。初心者向けのプログラミング教室も運営中。オンライン・対面・出張等でプログラミングをレッスンします。