LZH形式のファイルのZip形式への変換の仕方

以前にダウンロードした LZH形式のファイル を Importer.exe から読み込みするには,LZHファイルを Zip形式のファイルに変換しておいて,Newフォルダに入れる必要があります。

 

以下は,7-Zip というアプリケーションがインストールされていることを前提にしています。(コマンド プロンプトから .lzh や .zip ファイルを扱えるものならば,他のソフトでも似たような感じでやれます。たぶん。)

1. どこかに新規にフォルダを作成します。

2. そのフォルダに Zip 形式に変換したい LZH ファイル群をコピーします。

3. メモ帳などで新規にファイルを作成し,中身を以下のようにして,(名前は LzhToZip など好きなもので)保存し,拡張子を .bat に変更します。以下,LzhToZip.bat というファイル名で説明。

@echo off
set myexe="C:\Program Files\7-Zip\7z.exe"

for %%i in (*.lzh) do  (
  call :sub1 %%i
)

goto :EOF

:sub1
echo %1
%myexe% e -o$$temp$$ %1 >> NUL
cd $$temp$$
%myexe% a -tzip ..\%~n1.zip %~n1.dat >> NUL
cd ..
rmdir /S /Q $$temp$$
del %1

goto :EOF

4. LzhToZip.bat ファイルを 上記の LZH ファイル群が入っているフォルダにコピーします。

5. LzhToZip.bat ファイルをダブルクリックすると,コマンドプロンプトが実行されて,そのフォルダに Zip 形式に変換された .zip ファイル群が作成され,.LZH ファイル群は削除されます。

 

cf. 

・ 7-Zip 日本語howto

・ @IT Windows 2000 コマンドライン徹底活用

 

 

set myexe="C:\Program Files\7-Zip\7z.exe"

myexe と命名した(環境)変数に 7-Zip のパスを設定。

 

for %%i in (*.lzh) do  (
  call :sub1 %%i
)

.bat ファイルがあるフォルダの 拡張子が .lzh であるファイルを順次,変数 %%i に設定し,それを引数として,sub1 サブルーティンを順次呼び出し。

 

%myexe% e -o$$temp$$ %1 >> NUL

解凍。

・ %myexe% は,先ほど設定した環境変数(myexe)を参照(する書き方)。
7-Zip の "C:\Program Files\7-Zip\7z.exe" のパスが入っている。

・ e は Extract コマンド(解凍/書庫からの取出し)

・ -o は,解凍されたファイルの出力先を指定するスイッチ。
$$temp$$ というフォルダに出力。(自動的に作成されます。)

・ %1 は解凍するファイル名。sub1 呼び出し時に,一つ目の引数で渡されたものなので %1。(例: "BNXM2013099920130930172236.LZH")

・ >> NUL は,コマンド プロンプトに出力される文字列を捨てます。@IT の記事を見てください。

 

cd $$temp$$

カレント ディレクトリを $$temp$$ フォルダに変更。

 

%myexe% a -tzip ..\%~n1.zip %~n1.dat >> NUL

圧縮。

・ a は Add コマンド(圧縮/書庫への追加)

・ -t は,書庫のタイプを指定。Zip 形式にするので,zip を指定。よって,-tzip

・ ..\%~n1.zip は,書庫名。(無ければ,新規に作成されます。)
%~n1 は,引数 %1 の文字列(例: "BNXM2013099920130930172236.LZH")から,拡張子(".LZH")を除いたもの(例: "BNXM2013099920130930172236")の意味。
..\ は上位フォルダの意味。

 %~n1.dat は,圧縮するファイル名。

 

cd ..

カレント ディレクトリを親フォルダに変更。

 

rmdir /S /Q $$temp$$

$$temp$$ ディレクトリ(フォルダ)を削除。

・ /S 指定されたディレクトリ(フォルダ)以下のファイル及びフォルダを削除。

・ /Q Quiet モードで。確認メッセージを出さない。

 

del %1

ファイルやディレクトリ(フォルダ)を削除。

・ %1 には,LZH ファイル名(例: "BNXM2013099920130930172236.LZH")が入っているので,そのファイルを削除。

※ 手動で削除したい人や間違って別ファイルを削除してしまわないか?心配な人は,この行を削除。

 

goto :EOF

ファイルの最後へのいう意味ですが,これで,sub1 サブルーティンから呼び出し元の for へ制御が戻ります。

 

◆ .bat ファイルの使用時の注意

上記バッチファイル内で del コマンドを使用しています。

削除されたファイルはゴミ箱には行かないので,間違えるととんでもないことになるので注意が必要です。

.bat ファイルが置いてあるフォルダ内に存在する,拡張子が .lzh であるファイルをすべて削除してしまうので,必ず,それら .lzh ファイルは念のためバックアップしてから行ってください。各 .lzh ファイル内の .dat ファイルは,.zip ファイル内にコピーされますが,.zip ファイルの作成に万が一失敗したときのために,バックアップはとっておいてください。自己責任でお願いします。

※ 特別登録馬情報のファイル(TK で始まるもの)で1年経過したものは,JRA-VAN から再取得できません。なくしてしまうと2度と手に入れられないので注意してください。

 

 

 

トップへ

ホームへ

 

Published: 2013-10-02

Last Updated: 2013-10-02

つくれますの部屋

Copyright(C) 2013 Yasuharu Takahashi, All Rights Reserved.