サーバー側のWinzipコマンドラインを呼び出すことにより、複数のアップロードされたファイルを梱包および圧縮する方法は?
この問題を解決するには、最初にWSHと呼ばれるWindows Scriptingホストを理解する必要があります! Microsoftの説明からの引用は次のとおりです。
******************************************** ******* ***********************
* WSHは、Microsoftのスクリプトテクノロジーシリーズの一種です。
*この環境では、一部のオブジェクトは事前に定義されており、COMの他のオブジェクトも使用できます。 *
*彼はスクリプトエンジンを使用してスクリプト自体を解釈して実行します。
*第三者は、独自のスクリプトエンジンを開発することもできます。 *
******************************************** ******* ***********************
具体的には、最初にいくつかのスクリプトファイルをコンパイルします(Microsoftには、suffix.vbsまたは.jsを使用して、いくつかの例があります)。
次に、プログラムを使用して説明および実行すると、このプログラムはWindowsスクリプトホストと呼ばれます。
名前はwscript.exe(またはコマンドラインのcscript.exe)で、マシンを確認できます
これらの2つのファイルが含まれている場合、WSHがあるかどうかがわかります。 (Win2000はwinnt/system32/)
これは、ファイルがコマンドラインではなく、スクリプト言語で書かれたスクリプトであることを除いて、バッチファイルに非常に似ています。
以下を含む、WSHに付属するいくつかの組み込みオブジェクトを簡単に紹介しましょう。
1。wscript.exeによって提供されるオブジェクト
WScriptは、WScriptとしてスクリプトエンジンにさらされています。
wscript.argumentsプロパティを介してアクセスされないwsharguments。 入力
2。wshom.ocxが提供するオブジェクト。
wshell自動オブジェクト。 progidはwscript.wshshellです。
(注:これは私たちが使用したいもので、DOSコマンドを実行できます)
wshnetwork自動オブジェクト。 progidはwscript.wshnetworkです。
wshortcutはwshshell.createshortcutメソッドを介して公開されていません。
wshurlshortcutはwshshell.createshortcutメソッドを介して公開されていません。
WSHCOLLECTIONは公開されていません。
WSHENVIRONMENTは公開されていません。
wshspecialFoldersは公開されていません。
主に、環境変数の獲得、ネットワークログイン、ドライブマッピング、およびクイックインターセプト作成を完了することができます。
プログラムの読み込み、特別なフォルダー(システムフォルダーなど)情報取得およびその他の機能。
システムがADOおよびその他のCOMコンポーネントをサポートしている場合は、使用することもできます。
次の例は、テキストファイルを表示するためにWordPadを開いて、テキストファイルを作成し、
それをライティングボードにコピーし、.VBSを接尾辞として保存してから、ダブルクリックすることができます。
'test.vbs
'**********************
「以下は、シェルオブジェクトでプログラムを開始するためです
'**********************
wshshell = wscript.createobject(wscript.shell)を設定します
wshshell.run(notepad&wscript.scriptfullname)
'******************************************* *****
'com object scripting.filesystemobjectを使用して、テキストファイルを操作します
'******************************************* *****
fs = wscript.createobject(scripting.filesystemobject)を設定します
a = fs.createTextfile(c:/testfile.txt、true)を設定します
A.WriteLine(これはテストです。)
A.close
また、ASPなどのWebプログラミング言語にも適用できます
<スクリプト言語= vbscript.encode runat = server>
'上記は、シェルオブジェクトでプログラムを開始します
wshshell = server.createobject(wscript.shell)を設定します
Issuccess = wshshell.run(d:/winnt/system32/cmd.exe、1、true)
issuccess = 0の場合
Response.Writeコマンドが正常に実行されました!
それ以外
Response.Writeコマンドは実行できませんでした!許可が不十分またはプログラムがDOS州で実行できない
ifを終了します
</script>
注記:
1。runat=サーバーには必要です
2.set wshell = wscript.createobject(wscript.shell)
wshshell = server.createobject(wscript.shell)を設定するには変更します。
3。パラメーター1は、SW_SHOWNORMALを表し、ウィンドウをアクティブ化して表示します。ウィンドウが最小化または最大化されると、元のサイズと位置に復元されます。
4.Trueは、実行、falseを返す、またはプロセスが終了するのを待たずにスクリプトが実行され続けることを指定するエラーを表します。
5. WSHの組み込みオブジェクトを呼び出すと、関数と手順を呼び出すように呼ぶことができます。
たとえば、wshell.run(d:/winnt/system32/cmd.exe、1、true)に電話してください)
WSHに興味があり、もっと知りたい場合は、チェックしてください
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/wsconwshbasics.asp
http://www.dev-club.com/club/bbs/showessence.asp?id=11136
それでは、ポイントに戻って、ファイルを圧縮および解凍する方法を見てみましょう!
Winzipはファイルを解凍して圧縮しやすいことを誰もが知っていますが、プログラムやコマンドラインを通じてそれらを呼び出す方法はありますか?
もちろん、Winzipの著者が開発されました
Winzipコマンドラインサポートアドオンバージョン1.0
誰もがhttp://www.winzip.com/wzcline.htmにアクセスして、wzcline.exeをダウンロードできます!
前提は、winzip8.0でない場合は、マシンがwinzip8.0以下をインストールする必要があることです
http://www.winzip.com/download.htmダウンロード!
ダウンロードした後、インストールするだけです!
winzipコマンドラインは、ファイルとプログラムwzzip.exe、wzunzip.exeのヘルプファイルとプログラムがWinzipディレクトリで生成されます。
コールの実行を開始できます:
例:C:/プログラムファイル/winzip/wzzip myfile.zip
ここに2つのファイルを任意のディレクトリにコピーして、DOSウィンドウのすぐ下で直接実行することもできます。
例:wzzip.exe myfile.zip
SET PATH = C:/WINDOWS; C:/PROGRAM FILES/WINZIPを追加できます。
パスを追加せずにどこにでも呼ぶことができます!
次に、ヘルプにおける2つのコマンドの基本的な使用法を簡単に理解しましょう
wzzip.exeを使用してファイルを圧縮します。
一般的な形式:wzzip [options] zipfile [@listfile] [files ...]
[オプション]を含む:
- デフォルト操作、圧縮ファイル
-a+ファイルを圧縮し、ファイルを削除して圧縮します
-b [ドライブ|パス]は、別のドライブに一時的な圧縮ファイルを作成することです
-d zipファイルで指定されたターゲットファイルを削除します
-e <x | n | f | s | 0>は圧縮比を設定し、xは最大、0は最小です
-f zipファイルに存在するファイルを置き換えます
-h | - ?
-v圧縮ファイルのリストを作成します
- @リストは、すべてのファイルを含むファイルを解凍するファイルを作成し、含まれたファイル名で圧縮します
.............(その他の詳細については、ヘルプファイルを参照してください)
[@listfile]は、圧縮ファイルのリスト情報レコードです
[ファイル...]は、圧縮される複数のファイル、スペース、またはワイルドカードで区切られています
例:
現在のディレクトリ内のすべてのファイルを圧縮します
wzzip test.zip *。 *
タイプTXTのすべてのファイルを圧縮します
wzzip test.zip *.txt
2つのファイルを圧縮します
wzzip test.zip abc.txt def.txt
abc.txtを除くタイプTXTのすべてのファイルを圧縮します
wzzip -xabc.txt test.zip *.txt
d:/docsの下でタイプTxtのすべてのファイルとサブディレクトリを圧縮する
wzzip -rp test.zip d:/docs/*。txt
zipit.1stのファイルをtest.zipに更新します
wzzip -u test.zip @zipit.lst
圧縮ファイルのリストをリストします
wzzip -v test.zip
wzunzip.exeを使用してファイルを解凍します。
フォーマット:wzunzip [options] zipfile [@listfile] [path] [files ...]
[オプション]を含む:
-C [M]減圧は、DOS画面にファイルリストを表示することです
-d zipファイルのディレクトリ構造を再構築します
-fは、zipファイルの現在のフォルダーと同じ名前のファイルのみを解凍します。
-jhrs zipファイル内のファイルの非表示、読み取り専用、およびシステムプロパティを無視します
-jhrsは、非表示、読み取り専用、およびシステムプロパティでファイルのみを解凍します
-n新しいファイルを解凍するだけで、解凍されるファイルが既存のファイルよりも新しい場合に交換します。
-oはいを使用する必要はありません。ファイルを交換するかどうかを判断する必要はありません
-v圧縮ファイルのリストを作成します
- @リストは、すべてのファイルを含むファイルを解凍するファイルを作成し、付属のファイル名で解凍します
.............(その他の詳細については、ヘルプファイルを参照してください)
例えば:
現在のディレクトリにすべてのファイルを作成します
wzunzip test.zip
test.zipから現在のディレクトリまでabc.txtを作成します
wzunzip test.zip abc.txt
TEST.ZIPでディレクトリ構造とファイルを作成します。
wzunzip -d test.zip
test.zipにディレクトリ構造とファイルを作成してc:/docs
wzunzip -d test.zip c:/docs files.ist from test.zipにファイル名を含むファイルを作成します
wzunzip test.zip @files.lst
test.zipのファイルリストの内容を表示します
wzunzip -v test.zip
圧縮ファイルにすべてのファイルタイプTXTの内容を表示する
wzunzip -v test.zip *.txt
上記の準備を使用すると、VBSを書き込み、ファイル減圧と圧縮を実行するのは簡単です。
'test.vbs
'**********************
'上記は、シェルオブジェクトでプログラムを開始します
'**********************
wshshell = wscript.createobject(wscript.shell)を設定します
wshshell.run(c:/wzzip.exe c:/test.zip c:/a.txt c:/b.txt)
'test.asp
'**********************
'上記は、シェルオブジェクトでプログラムを開始します
'**********************
<スクリプト言語= vbscript.encode runat = server>
'上記は、シェルオブジェクトでプログラムを開始します
wshshell = server.createobject(wscript.shell)を設定します
Issuccess = wshshell.run(c:/wzzip.exe c:/test.zip c:/a.txt c:/b.txt、1、true)
issuccess = 0の場合
Response.Writeコマンドが正常に実行されました!
それ以外
Response.Writeコマンドは実行できませんでした!許可が不十分またはプログラムがDOS州で実行できない
ifを終了します
</script>
ファイルのアップロードをこれと組み合わせると、使用される多くの機能を作成します。のように:
アップロードコンポーネントを使用して複数のファイルをアップロードした後、複数のファイルをパッケージ化して、zipファイルをダウンロードするために他のファイルに提供できます
または、zipファイルをアップロードした後、プログラムを使用してそれを分解して、単一のファイルのダウンロードのために他のファイルに提供することができます
ユーザーにとって非常に便利です!将来の記事にこれらの2つの変更を書き留めます!記事には必然的に省略があります、私を修正してください!
上記のすべての例は、Win2000+IIS5.0でテストされています!