Как упаковать и сжать несколько загруженных файлов, вызывая командную строку Winzip на стороне сервера?
Чтобы решить эту проблему, мы должны сначала понять хост сценариев Windows, называемый WSH! Вот цитата из объяснения Microsoft:
********************************************* ******* ***************************
* WSH - это тип серии технологий сценариев Microsoft.
* В этой среде некоторые объекты предопределены, а также могут использоваться другие объекты в COM. *
* Он использует двигатель сценария для интерпретации и выполнения сценариев.
* Третьи стороны также могут разработать свои собственные сценаристы. *
********************************************* ******* ***************************
Чтобы быть конкретным, вы сначала скомпилируете некоторые файлы скрипта (Microsoft поставляется с некоторыми примерами с суффиксами. VBS или .js).
Затем используйте программу, чтобы объяснить и выполнить ее, и эта программа называется сценарием Windows.
Имя wscript.exe (или cscript.exe в командной строке), вы можете проверить свою машину
Если в нем есть эти два файла, вы узнаете, есть ли WSH. (Win2000 находится под Winnt/System32/)
Это очень похоже на пакетный файл, за исключением того, что файл не является командной строкой, а сценарий, записанный на языке скрипта.
Давайте кратко представим несколько встроенных объектов, которые поставляются с WSH, включая:
1. Объект, предоставленный wscript.exe
Wscript подвергается воздействию двигателя сценариев как WSCRICT.
Wsharguments не публично; входить
2. Объект, предоставленный Wshom.ocx.
WSHSHELL Автоматический объект. Прогид wscript.wshshell.
(Примечание: это то, что мы хотим использовать, вы можете выполнить команду DOS)
WSHNetwork Автоматический объект. Прога - это wscript.wshnetwork.
WSHSHORTCUT не является публичным;
WSHURLSHORTCUT не является публичным;
WSHCollection не публикуется;
Wshenvironment не является публичной;
WSHSPECIALFORDERS не является публичным;
Они могут в основном завершить получение переменных среды, входа в сеть, сопоставления диска и быстрого создания перехвата.
Загрузка программы, специальные папки (например, системные папки) Получение информации и другие функции.
Если ваша система поддерживает ADO и другие компоненты COM, вы также можете использовать ее.
Следующий пример демонстрирует открытие WordPad для просмотра текстового файла, создания текстового файла и написания
Вы можете скопировать его на писательную доску, затем сохранить его с .vbs в качестве суффикса, а затем дважды щелкнуть его.
'test.vbs
'**************************************
'Следующее - запустить программу с объекта Shell
'**************************************
Установить 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
<script language = vbscript.encode runat = server>
'Выше запускает программу с объектом Shell
Установить wshshell = server.createObject (wscript.shell)
Issuccess = wshshell.run (d: /winnt/system32/cmd.exe, 1, true)
Если issuccess = 0, тогда
Команда response.write была успешно выполнена!
еще
Команда response.write не выполнила! Недостаточные разрешения или программа не могут работать в штате DOS
конец, если
</script>
Примечание:
1. Сервер Runat =
2.set wshshell = wscript.createObject (wscript.shell)
Чтобы измениться, чтобы установить wshshell = server.createObject (wscript.shell),
3. Параметр 1 представляет SW_SHOWNORMAL, активирует и отображает окно. Если окно минимизировано или максимизировано, оно будет восстановлено до исходного размера и положения.
4.true представляет ошибку, которая возвращает выполнение, False или указывается, что скрипт продолжает выполнять, не ожидая завершения процесса.
5. Вызывая встроенный объект WSH, его можно назвать как вызовы функций и процедур.
Например, вызовите wshshell.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 или выше.
http://www.winzip.com/download.htm Скачать!
После загрузки просто установите его!
Файл справки и программы Winzip командной строки и программа Wzzip.exe, wzunzip.exe будет сгенерирована в каталоге Winzip.
Вы можете начать выполнять звонки:
Например: C:/Program Files/winzip/wzzip myfile.zip
Вы также можете скопировать здесь два файла в любой каталог и запустить их непосредственно под окном DOS.
Например: wzzip.exe myfile.zip
Вы можете добавить set path = c:/windows; c:/программа файлов/winzip;
Вы можете позвонить в любом месте, не добавляя проход!
Теперь давайте кратко поймем основное использование двух команд в помощи
Используйте wzzip.exe для сжатия файлов:
Общий формат: Wzzip [Options] Zipfile [@listfile] [файлы ...]
[Параметры] Включите:
-А операция по умолчанию, сжатый файл
-a+ сжатие файла и удалите файл для сжатия
-b [Drive | Path] -это создание временных сжатых файлов на другом диске
-Д удалить целевой файл, указанный в файле ZIP
-e <x | n | f | s | 0> -это установить коэффициент сжатия, x -максимум, а 0 -минимум
-f заменить файл, который существует в файле Zip
-h |-?
-v Создайте список сжатых файлов
-@Список Создайте файл, который содержит все файлы, которые будут декомпрессированы, а затем сжимайте его по включенному имени файла
............. (для других данных, пожалуйста, обратитесь к файлу справки)
[@ListFile] - это информационная запись списка сжатых файлов
[файлы ...] - это несколько файлов, которые для сжатия, разделенные пространствами или подстановочным знаком
пример:
Сжатие всех файлов в текущем каталоге
wzzip test.zip *. *
Сжатие всех файлов типа txt txt
Wzzip test.zip *.txt
Сжатие двух файлов
wzzip test.zip abc.txt df.txt
Сжатие всех файлов типа TXT, кроме ABC.TXT
wzzip -xabc.txt test.zip *.txt
Сжатие всех файлов и подкаталогов типа TXT под D:/DOCS
Wzzip -Rp test.zip d:/docs/*. txt
Обновить файл в Zipit.1st test.zip
wzzip -u test.zip @zipit.lst
Перечислите список сжатых файлов
Wzzip -v test.zip
Используйте wzunzip.exe, чтобы распаковать файл:
По формату: wzunzip [опции] Zipfile [@listfile] [path] [файлы ...]
[Параметры] Включите:
-c [m] декомпрессия предназначена для отображения списка файлов на экране DOS
-Д реконструировать структуру каталога в файле ZIP
-f только декомпрессат файлы с тем же именем, что и текущая папка в файле ZIP.
-jhrs игнорируют скрытые, только чтение и свойства системы файлов в файлах zip
-Jhrs только декомпрессируют файлы со скрытыми, только для чтения и системных свойств
-Н только распаковывает новый файл, замените, если файл, который будет декомпрессирован, новее существующий.
-О не нужно использовать да, чтобы определить, заменить ли файл
-v Создайте список сжатых файлов
-@Список Создайте файл, который содержит все файлы, которые будут декомпрессированы, а затем распаковывать его с помощью включенного имени файла
............. (для других данных, пожалуйста, обратитесь к файлу справки)
Например:
Создать все файлы в текущий каталог
Wzunzip test.zip
Создайте Abc.txt из test.zip в текущий каталог
Wzunzip test.zip abc.txt
Создайте структуру и файл каталога в test.zip в текущий каталог
wzunzip -d test.zip
Создайте структуру и файл каталога в test.zip для c:/docs
wzunzip -d test.zip c:/docs Создание файла, содержащего имя файла в файлах, из test.zip
wzunzip test.zip @files.lst
Показать содержимое списка файлов test.zip
wzunzip -v test.zip
Отображать содержимое всех типов файлов txt в сжатом файле
wzunzip -v test.zip *.txt
При приведенной выше подготовке нам будет легко написать VBS, чтобы выполнить декомпрессию и сжатие файла:
'test.vbs
'**************************************
'Выше запускает программу с объектом Shell
'**************************************
Установить wshshell = wscript.createObject (wscript.shell)
Wshshell.run (c: /wzzip.exe c: /test.zip c: /a.txt c: /b.txt)
'test.asp
'**************************************
'Выше запускает программу с объектом Shell
'**************************************
<script language = vbscript.encode runat = server>
'Выше запускает программу с объектом Shell
Установить 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
конец, если
</script>
Это очень просто. нравиться:
После загрузки нескольких файлов с компонентом загрузки вы можете упаковать несколько файлов, чтобы предоставить их другим для загрузки файлов ZIP
Или после загрузки файла ZIP, вы можете использовать программу, чтобы распаковывать ее, чтобы предоставить другим для загрузки одного файла.
Очень удобно для пользователей! Я запишу эти два изменения в будущих статьях! В статье неизбежно упущены, пожалуйста, поправьте меня!
Все вышеперечисленные примеры были проверены на Win2000+IIS5.0!