File PKZ204G.EXE from The Programmer’s Corner in
File Name File Size Zip Size Zip Type
SHAREWAR.DOC 573 332 deflated
WHATSNEW.204 2430 1140 deflated
V204G.NEW 10704 4071 deflated
HINTS.TXT 14109 5044 deflated
ORDER.DOC 3304 1505 deflated
MANUAL.DOC 202252 55529 deflated
AUTHVERI.FRM 2330 939 deflated
PKZIP.EXE 42166 41799 deflated
PKUNZIP.EXE 29378 29086 deflated
PKZIPFIX.EXE 7687 7603 deflated
ZIP2EXE.EXE 27319 26778 deflated
PKUNZJR.COM 2750 2491 deflated
OMBUDSMN.ASP 591 359 deflated

## Contents of the README.DOC file

This diskette contains the file PKZ204g.EXE. Type

PKZ204g

followed by pressing the Enter key to create the program and
documentation files for PKUNZIP, PKZIP, and PKSFX version 2.04g
To print the documentation files after running PKZ204g, type

COPY *.DOC PRN
COPY *.NEW PRN
COPY *.204 PRN
COPY *.TXT PRN

following each line by the return key.

See the files V204G.NEW, WHATSNEW.204 and ADDENDUM.DOC for more
the software.

If you distribute PKUNZIP, PKZIP, and PKSFX to friends, associates,
or to a computer bulletin board system (BBS), please distribute the
file PKZ204g.EXE rather than the individual files for PKUNZIP, PKZIP
and PKSFX.

## Contents of the MANUAL.DOC file

This diskette contains the file PKZ204g.EXE. Type

PKZ204g

followed by pressing the Enter key to create the program and
documentation files for PKUNZIP, PKZIP, and PKSFX version 2.04g
To print the documentation files after running PKZ204g, type

COPY *.DOC PRN
COPY *.NEW PRN
COPY *.204 PRN
COPY *.TXT PRN

following each line by the return key.

See the files V204G.NEW, WHATSNEW.204 and ADDENDUM.DOC for more
the software.

If you distribute PKUNZIP, PKZIP, and PKSFX to friends, associates,
or to a computer bulletin board system (BBS), please distribute the
file PKZ204g.EXE rather than the individual files for PKUNZIP, PKZIP
and PKSFX.

PKZIP 2

The next generation in compression software

*SHAREWARE MANUAL*

PKZIP
PKUNZIP
PKSFX
PKZIPFIX
PKUNZJR

PKWARE, Inc.
9025 N. Deerwood Drive
Brown Deer, WI 53223 USA

Phone (414) 354-8699
Fax (414) 354-8559
BBS (414) 354-8670

U.S. Patent No. 5,051,745

No part of this publication may be reproduced, transmitted,
transcribed, stored in a retrieval system, or translated into any other
language or computer language in whole or in part, in any form or
by any means, whether it be electronic, mechanical, magnetic,
optical, manual or otherwise, without prior written consent of PKWARE, Inc.

PKWARE, Inc. disclaims all warranties as to this software, whether express
or implied, including without limitation any implied warranties of
merchantability, fitness for a particular purpose, functionality, data
integrity or protection.

PKWARE, the PKWARE logo, PKZIP, PKUNZIP, and PKSFX are

StupenDOS is a trademark of Eclipse Technologies, Inc.

MS-DOS is a trademark of Microsoft Corporation.

Netware and Novell are registered trademarks of Novell, Inc.

Trademarks of other companies mentioned in this documentation appear for
identification purposes only and are the property of their respective
companies.

This is a condensed version of the manual provided with the registered
version of PKZIP. Some sections have been condensed or omitted in this
shareware version. Most notably, the tutorial had to be omitted.

PKZIP.

CONTENTS

________________________________________________________________
Introduction 1

Product Support ......................................... 3

________________________________________________________________
Installation 5

Installing PKZIP On Your Hard Drive ..................... 5

________________________________________________________________
Tutorial 8

Getting Started ......................................... 8

Simple PKZIP and PKUNZIP usage ......................... 10

Zipping a Single File ............................. 12

Zipping Multiple Files ............................ 14

Testing .ZIP files ................................ 15

Storing and Rebuilding Directory Structures ............ 16

Deleting Files from a .ZIP file ................... 19

Speed vs. Size ......................................... 21

Selecting the Compression Type ......................... 23

Extracting Files to a Device ...................... 24

Storing and Restoring the Volume Label ............ 25

Compressing and Extracting Hidden and System Files 26

Zipfile and File Comments ......................... 27

PKWARE Inc. Contents i

________________________________________________________________
PKZIP Command Reference 30
________________________________________________________________
PKTMP 47
________________________________________________________________
PKUNZIP Command Reference 48
________________________________________________________________
PKSFX/ZIP2EXE 57

Creating a Self-Extracting File ........................ 57

PKSFX Junior ........................................... 57

PKUNZIP Junior ......................................... 58

PKSFX Command Summary .................................. 59

Modifying a Self-Extracting File ....................... 60

Stripping the PKSFX Code ............................... 60

Sending a Self-Extractor ............................... 60

With PKSFX Junior ................................. 61

With PKSFX ........................................ 61

Confirm before extract ................................. 62

Memory Requirements .................................... 62
________________________________________________________________
Using List Files 63

Generating List Files .................................. 65

List file size ......................................... 66

________________________________________________________________
Using Data Encryption 68

Long Keys ......................................... 69

Complex Keys ...................................... 69

Multiple Keys ..................................... 70

How secure is PKZIP encryption? ................... 72

ii Contents PKZIP 2

________________________________________________________________
PKZIP Configuration ......................................... 74

PKZIP.CFG .............................................. 75

________________________________________________________________
Authenticity Verification 78

Using PUTAV ............................................ 78

Application for Authenticity Verification 81

________________________________________________________________
F.A.Q. (Frequently Asked Questions) ......................... 82

________________________________________________________________
How Does PKZIP Work? 91

Compression ............................................ 91

Information content ............................... 91

Binary Data Representation ........................ 92

Speed vs. Size .................................... 95

Archiving .............................................. 95

How PKZIP Builds a .ZIP File ...................... 97

Building a New .ZIP File .......................... 97

The .ZIP File Structure ........................... 98

________________________________________________________________
Trouble-Shooting 101

Determining the Problem .......................... 101

Customer Support Form ............................ 105

________________________________________________________________
ERROR MESSAGES 107

Error Levels .......................................... 118

________________________________________________________________
PK Safe ANSI 120

Usage ............................................ 120

Monochrome Option ................................ 121

PKWARE Inc. Contents iii

FEATURES

The PKZIP 2 software utilities include many features. Here are just
a few of them:

Improved Compression. PKZIP 2 implements a new compression
algorithm called Deflating. Deflating has varying levels of compression
and speed available, allowing you to specify the method of compression
to be employed. Both the speed and amount of compression are improved
over previous versions of PKZIP.

Multi-volume archive support. PKZIP 2 can create .ZIP files
larger than a single floppy disk.

Subdirectory storage. PKZIP 2 can find and store subdirectory
pathnames within a .ZIP file. Files can then be restored to their
original subdirectories, or they may be re-created. Storage includes
empty subdirectories.

Automatic detection and utilization of 80386 and 80486 CPU's,
EMS and XMS memory, Novell Netware, and 32-bit DPMI. PKZIP 2 gets
the most out of your machine by using the power of modern CPU's. EMS
and XMS support offer the ability to process more files with less
available conventional memory. Novell Netware and 32-bit DPMI support
offer speed improvements.

in a DOS session under OS/2 or Windows. OS/2 and Windows offer EMS,
XMS and 32-bit DPMI without your using extra drivers.

Memory Requirements. PKZIP requires a minimum of 183K of conventional
memory. If EMS is available, the conventional memory requirement
is 85K. PKUNZIP requires 90K of conventional memory. PKSFX requires
a minumum of 71K of memory.

Easy to use configuration program. PKZIP 2 can be configured
to best suit your needs through the use of the PKCFG program.

PKSFX Junior and PKUNZIP Junior. These "Junior" programs use
very little memory and are extremely small. Although they are reduced in
ability, their small size makes them very useful.

Password Encryption. Sensitive data files can be scrambled
with password protection. The security of this feature has been improved
in PKZIP 2.

Authenticity Verification. Users requiring authentication of
archive files may request an Authenticity Verification code. This
allows users to create .ZIP files which reveal tampering.

iv Features PKZIP 2

INTRODUCTION

Welcome to PKZIP 2.0. This release continues the high performance tradition
of previous versions of PKZIP, with a host of new features. In addition to
an improved reference section, this manual contains a step-by-step tutorial.
By following the Installation, Tutorial and Advanced Features sections in
order you will learn how to use PKZIP to your best advantage. Use the
Command Reference sections in your day-to-day use of PKZIP. Convenient
indices to these sections are printed on the inside of the front and back
covers.

PKZIP is a powerful program. It has many options, but it is possible to make
use of PKZIP by knowing only a few simple options. You can start out with a
features.

It is recommended that you first read through this introduction and the
installation procedure. Then perform the installation and work through the
Tutorial in order.

Follow up with the Advanced Features section of the Tutorial. You should not
attempt to use the PKZIP Backup Guide until you have completed (and
understand) the entire tutorial.

Conventions

This manual follows several conventions for clarity and to help you find
information quickly. Text that you would see on your computer screen is
shown here in a "typewriter" typeface. Text that would be entered by you
in these examples is shown in bold:

C:\DOS>dir

Bold text is also used for emphasis and to point out terms which are then
shown in vocabulary boxes.

Vocabulary

Terms that are felt to be technical enough to require explanation are listed
in convenient vocabulary blocks. These vocabulary terms are with the first
instance of the word, so that you may read them and continue on without
needing to search for the glossary. This block is an example.

** Anything that we want to be sure you don't miss will be pointed out in
the same manner as this paragraph.

PKWARE Inc. Introduction 1

Command Syntax

Standard command specification syntax is used throughout the Command
Reference section. This is used to differentiate between command option
parameters which are optional or mandatory, and to indicate when certain
options may be combined:

< > Angle Brackets are used to indicate a command option parameter which
must be present. The option parameter will follow immediately after the
option with no space.

[ ] Square Brackets indicate a command option parameter which is not
mandatory.

, | If there are several possible options which may be used in the
position indicated by the angle or square brackets, they will be separated by
either a Comma or a Vertical Bar. If options are separated by a comma, then
more than one of the options may be used simultaneously. If they are
separated by a vertical bar, the options are exclusive of one another and
only one may be used at a time.

Following are some abstract examples of how these syntax rules are applied.

Syntax Valid Entries
---------------------------------------------------
-z -za, -zab, -zac, -zbc, -zabc

-z -za, -zb, -zc

-z[a,b] -za, -zb, -zab, -z

-z -za, -zb, -zac, -zbc
-zab or -zabc would be invalid.

2 Introduction PKZIP 2

Product Support

We hope that your use of PKZIP and PKUNZIP will be enjoyable and trouble-
free. It is our intention to provide the best possible product and
documentation. We understand that problems may arise, and in most cases you
will be able to resolve any problems you may have by referring to the
documentation. Answers to questions you might have will usually be found
within these pages.

You may reach our Product Support staff in several convenient ways.

Support Conferences

PKWARE maintains support conferences on several BBS Networks. Such as ILink,
SmartNet and Rime. You may leave a question in the PKWARE support conference
on any of these networks. A Support Technician or fellow user will answer
your questions. Many other BBS networks also offer PKWARE conferences, but
these are not necessarily monitored by PKWARE.

PKWARE BBS

PKWARE also maintains its own BBS. The PKWARE BBS is normally available 24
hours a day. The BBS supports all baud rates from 1200 up to 14.4K. Set
your communications software for 8 bits, 1 stop bit, no parity.

The PKWARE BBS offers the latest in PKWARE shareware as well as many other
convenience.

PKWARE BBS
(414)354-8670

CompuServe

PKWARE Support Technicians maintain a discussion forum on CompuServe. To
get to the forum, simply type "GO PKWARE" from any CompuServe prompt.

PKWARE CompuServe ID# 75300,730

PKWARE Inc. Introduction 3

Internet/Usenet

PKWARE products are frequently discussed in the newsgroup "comp.compression".
Internet newsgroups are not supported directly by PKWARE.

Through Internet
[email protected]

Voice and Fax

You may reach a PKWARE Support Technician by sending a Fax containing your
question.

PKWARE FAX
(414)354-8559

methods of communication, a Support Technician may be reached by phone.
PKWARE Technical support is normally available Monday through Friday, 9 am
to 5 pm Central Time (-7 hours GMT).

PKWARE Voice Support
(414)354-8699

Information to Give

When contacting PKWARE Technical Support in any of the above methods, please
be prepared to provide as much information about the problem as possible.
Include the version numbers for: PKZIP, DOS, and any Memory and Device
Drivers you are using. Include the command(s) you have tried to use, and
what the results were and note why you feel you have a problem.

When faxing a problem, a print out of any error messages is often helpful in
determining a solution.

PKWARE Inc.
9025 N. Deerwood Dr.
Brown Deer, WI 53223
(414)354-8699
(414)354-8559 FAX
(414)354-8670 BBS

4 Introduction PKZIP 2

INSTALLATION

PKZIP works best when it is located in your path. You can put PKZIP in your
path by either copying it into an already existing subdirectory that is in
your path, or by copying it into its own subdirectory and putting that

Throughout this manual many examples will show the command prompt. This will
look like "C:\>" or "C:\PKWARE>" or something similar. This represents the
command prompt displayed by your computer and is not to be typed in. If you
do not see a prompt that looks like this when you are using DOS, try typing
the command "PROMPT $P$G". This will set your prompt to resemble those used
here. You may also want to add the "PROMPT $P$G" command to your
AUTOEXEC.BAT file.

Path

There are two meanings for path as used under MS-DOS. It may refer to the
location of a file, or it may refer to the places DOS will search for a
command.

In the first instance, a path would be the directory or subdirectories that a
file is located in. If a file called "HOURS.PYS" is in a subdirectory called
"JUNE" under a directory called "PAYROLL" on the D: hard disk, it's full path
would be "D:\PAYROLL\JUNE\HOURS.PYS".

In the second instance, the path is a list of places stored in an environment
variable called "path". If you type "path" at the DOS prompt and press enter
you will see the path that is currently set on your computer. It will
usually look something like this:

C:\;C:\DOS;C:\UTIL;D:\WINDOWS

It will look different on your machine). The path is set by a statement in

Installing PKZIP On Your Hard Drive

Your computer should be turned on and at the DOS prompt. If your computer
normally runs a program automatically when you turn it on, you will need to
exit from this program. You should have a prompt on your screen similar to:

C:\>

** This installation example shows PKZIP being run from the C:\PKWARE
directory. PKZIP may be run from any drive in any directory.

PKWARE Inc. Installation 5

Place the diskette containing the original PKZIP distribution in your floppy
drive, either A: or B:. Next, create a subdirectory for PKZIP on your hard
drive. To do so type:

C:\>MD \PKWARE

Then change to this subdirectory.

C:\>CD \PKWARE
C:\PKWARE>

Now enter the name of the self-extractor on your PKZIP disk, include the drive
letter as part of the name.

C:\PKWARE>A:PKZ200

Note that the name of the self-extractor used throughout this manual
(PKZ200.EXE) may vary but will follow the pattern of PKZ###.EXE where ###
represents the version number of the software.

The contents of this file will now extract into the PKWARE subdirectory.

The A: and C: drives in the above command are only for example, and may be
replaced with other drive letters as appropriate to your particular setup.

You must next modify your AUTOEXEC.BAT file. You can edit this file with any
editor that can load and save DOS TEXT or plain ASCII files (For example,
"edit" in DOS 5.0, Windows Write, or any word processor with a DOS TEXT
editing ability. Consult your word processor's manual if you are unsure).

If you have DOS 5.0 type:

C:\>edit autoexec.bat

Look for a line in the file that says something similar to:

PATH=C:\;C:\DOS;(etc...)

Go to the end of this line and add a semicolon if one is not already there,
and the drive and path to PKZIP that you just created. For example
"...;C:\PKWARE"

The line will now look similar to this:

PATH=C:\;C:\DOS;C:\PKWARE

6 Installation PKZIP 2

You will most likely have additional items between the C:\DOS; and C:\PKWARE.

Next add a line that looks like this:

set pkzip.cfg=c:\pkware

The directory specified must be equal to the directory where PKZIP.CFG is
located. If you have followed this installation procedure exactly, the above
line will work fine. This line should be near the top of the AUTOEXEC.BAT
file.

Save the file and exit. You will have to re-boot your computer to make the
change take effect.

After you reboot type "path" at the command line and press [ENTER]. Your
machine will show the path. Make certain that the subdirectory you placed
the PKWARE files in is shown in the path.

You may now verify that PKZIP is installed by typing "PKZIP" at the DOS
command prompt. After you press [ENTER] you should see a banner screen from
PKZIP. Try PKUNZIP as well. You should be able to type PKUNZIP or PKZIP in
any directory and drive, not just in the PKWARE subdirectory.

If you receive the message "Bad command or file name" or "Unknown command",
PKZIP is not properly installed. Check the location of the files you
extracted from the distribution file. Also check the lines that were added to
the AUTOEXEC.BAT file. Make certain you have rebooted since the changes were

In addition to the files that make up the PKZIP program, you also have a text
file containing any last minute changes or updates to the documentation. You
need to print the addendum file in order to be aware of anything that is not
mentioned in the manual, or has changed since this manual was printed.

wordprocessor and print it.

PKWARE Inc. Installation 7

TUTORIAL

A comprehensive tutorial is provided with the registered version of PKZIP.
This tutorial has been omitted from the shareware version to save

PKWARE Inc. Tutorial 8-29

PKZIP

Command Reference

Items contained in square brackets([ ]) are optional parameters to an option
and need not be included. Where there are two (or more) items separated by a
comma, you may use any ONE of those options following the main option
character. If there are parameters in angle brackets(<>) you must include
that option, or choose one of those in the series. When choosing options
from a bracketed series, you may use more than one of these options if they
are separated by a comma. If the options are separated by a vertical bar (|)
you may only choose one option. See page 2 for examples.

Command Option Guide

_____________________________________
-a+ Turn off archive attribute of added files.

By using this option you can create a complete backup of your disk, while
clearing the archive attributes to make the way for incremental archiving.

Incremental archiving makes use of the archive attribute to take only the
files which have been modified since the last backup. In order for this
process to work smoothly you must first have a complete backup and a clearing
of the archive attribute for all files.

C:>pkzip f:backup.zip -a+ -rp

_____________________________________
-b Create temporary .ZIP file on alternate drive

Every time a .ZIP file is updated, PKZIP creates a temporary work file. When
the modifications to the .ZIP file are successfully completed, the original
.ZIP file is replaced with the temporary work file. This means you must have
at least as much additional disk space available as was used by the original
.ZIP file.

30 PKZIP PKZIP 2

For Example: If you have an existing .ZIP file of 500K, and you are adding
another file to it that takes 10K compressed, you need additional workspace
of at least 510K during the update process.

This command option will allow you to create the temporary .ZIP file on a
drive different from the one on which the original .ZIP file resides. This
allows you to update large .ZIP files when space is limited, such as a large
.ZIP file on a floppy disk. Also, by setting this temporary drive to point
to a RAM drive, you can speed up the operation of PKZIP.

Immediately following the -b option place the drive and/or path you wish to
use for the temporary work file.

A:>pkzip test.zip -bc: order.doc

C:>pkzip wp.zip -bz:\public wp51\*.*

** It is necessary to specify a path in addition to the drive letter only
if you are in a situation where disk space or access is being limited by
subdirectory, such as on a local area network.

_____________________________________
-c Create/Edit file comments for all files
-ac Create/Edit file comments for all files during update

Each individual file contained within a .ZIP file may have a comment attached
to it. Comments are useful for identifying files, especially if you need to
go back months later to look at a file, or if you are sending the file to
someone else. Each comment may be up to 59 characters long, including spaces
and punctuation.

The -c (lower case) option is used when you want to add or edit file comments
for all files within an existing .ZIP file.

The -ac option may be used during the .ZIP file creation process, or during
file.

When each file is added to the .ZIP file you will be prompted for a comment.
Type a comment of up to 59 characters, and press [ENTER]. If you are
updating an existing .ZIP file and there are files which already have
comments, the comment will be displayed on the prompt line for you to edit.
You may make changes or simply press [ENTER] to leave it unchanged.

PKWARE Inc. PKZIP 31

The -C (upper case) option is used when you want to add a file comment to new
files that are being added to an existing .ZIP file. Files which are not
being added, or files which already existed in the .ZIP file will not be

pkzip test.zip -C *.doc

In this situation, you would be adding additional files to the file called
test.zip. Since the file license.doc was added to it in the previous example,
you would not be prompted for a comment for this file.

_____________________________________
-d Delete files

This command will allow you to remove individual files from within a .ZIP
file. This command is only applicable to already existing .ZIP files.

In the above example the file license.doc would be removed from the .ZIP file
test.zip (assuming that it was in the .ZIP file in the first place).

** The deletion of files from within a .ZIP file causes a situation where
a temporary .ZIP file will exist during the deletion process. In order to
delete a file from a .ZIP file there must be as much disk space free as will
be occupied by the modified .ZIP file.

Multiple files may be deleted at one time. You may do this either by placing
multiple file names on the command line, or by specifying a list file
containing the names of files you want deleted. (See Using List Files)

pkzip july.zip -d file1.wk file2.wk1

pkzip tue_back.zip -d @old.lst

_____________________________________
-e[x|n|f|s] Specify compression method

-ex Maximum compression (most compression, most time)
-en Normal compression (default)
-ef Fast compression
-es Super Fast compression (least compression, least time)

-e0 Zero compression (storing)

PKZIP 2 provides four different methods of compression, allowing you to
choose the compression that best suits your need. You can choose speed, high
compression or a balance. The default method will provide good compression
at a reasonable speed.

32 PKZIP PKZIP 2

The switches for this option are intended to be mnemonic in nature:

-ex eXtra or maXimum
-en Normal
-ef Fast
-es Speed/Super Fast
-e0 Zero compression

The only two that may be difficult to remember are the order of Fast and
Super Fast, you might want to think "Extra Speed".

If you need to complete the compression in the minimum amount of time
possible, then choose the fast compression method. To force PKZIP to use its
fastest compression method, use the option -es (Super Fast).

To achieve the smallest files possible, specify the maximum compression
method using the option -ex (Maximum).

pkzip -ex test.zip d:\wp51\*.wp

Using no compression with the zero option is useful when archiving files
which will either not compress or compress very little. This would generally
be true when archiving .ZIP files. By specifying no compression PKZIP will
store the files directly rather than first attempting to compress them.

The compression method to use by default can be specified in the
configuration file. If you have specified the super fast, fast or maximum
compression method in your configuration you may override this and use the
normal method by using the option -en.

_____________________________________
-f Freshen files in a .ZIP file

When this command is specified, PKZIP will compare the contents of the .ZIP
file specified on the command line against the files specified for
compression. If a file ALREADY EXISTS in the .ZIP file, PKZIP will check to
see if the file exists in the source area (i.e. the files specified on the
command line). If the file does exist, it then checks to see if the file in
the source area is more recent than the copy contained in the .ZIP file. If
it is more recent, it will replace the compressed file with the one found in
the source area.

Using this parameter will normally speed up the ZIP process considerably, as
PKZIP will be able to skip over files that it has already compressed.

pkzip -f baka.zip c:\ranma\*.*

This example checks the contents of the .ZIP file "baka.zip" against the
files specified by "c:\ranma\*.*". Any file that matches will be

PKWARE Inc. PKZIP 33

updated if the file in the source area is newer than the copy within the .ZIP
file.

_____________________________________
-h display command summary (Help)

This option will display a brief summary of the command switches available.

_____________________________________
-i Add files that have the archive attribute - then turn attribute off
-i- Add files that have the archive attribute - do not turn attribute off

This option is very handy when backing up files. If this option is
specified, only files with the archive attribute will be compressed, and the
archive attribute will be set to off when the ZIP operation is complete for
these files.

You may alternatively ZIP all files with the archive attribute set, but not
modify the archive attribute.

A detailed explanation of the use of this option is given in the PKZIP Backup
Guide.

Archive Attribute
Every file on an MS-DOS partition has several properties associated with it.
One of these properties is called the Archive Attribute. When a file has
just been created, this attribute is set to be ON. Also, if a file is
altered, the attribute is set. After a file has been backed-up by a program
which uses this attribute, the attribute is switched off. By making use of
the archive attribute you may make certain that you get all files that are
new or changed. You save time by not backing up files you have previously
archived. This process is called an Incremental Backup.

-f , -u, -a+

_____________________________________
-j Specify masking of file attributes
-J Specify retention of file attributes (used to override config file)

When PKZIP archives a read-only file (or is forced to archive a hidden or
system file through use of the -w option) the default is to retain these
attributes with the file in the archive. You may choose to strip these
attributes off the file during the ZIP process by specifying the -j (lower
case) with the letter(s) corresponding to the attribute you wish to mask.

34 PKZIP PKZIP 2

File Attributes
Every file on an MS-DOS partition has several properties associated with it.
These attributes are: archive(a), hidden(h), read-only(r), and system(s).
The archive attribute is explained under the -i option. The Hidden attribute
prevents MS-DOS from displaying the file in a directory listing. Files that
have this attribute are normally ignored by PKZIP. The read-only attribute
prevents a file from being changed or deleted. When a file has this
attribute you cannot delete the file or change it's contents. The system
attribute signifies a file that is a system file. System files are used by
MS-DOS and are treated as Hidden files. Please see your DOS manual for

You may set masking of particular attributes to be the default by using
either the PKZIP.CFG file or the PKZIP configuration program.

If any of these options are set in the configuration they may be overridden
temporarily by use of the -J (upper case) option.

pkzip markie.zip -Jhs c:\util\*.*

** Please note there is no space between the -j/J option and the h,r or s.

_____________________________________
-k Retain original .ZIP file date
-k- Set .ZIP file date to the current date (override configuration file)

Normally, when PKZIP updates an existing .ZIP file by either adding to it or
deleting from it, the .ZIP file date is changed to the current date. If
the - k option is specified on the command line the .ZIP file date will not
be altered.

This option may be made the default, see PKZIP Configuration.

If PKZIP is configured to keep the original date in the configuration file,
this may be overridden temporarily by use of the -k- option.

_____________________________________

If this command is specified, PKZIP will display the software license
agreement.

_____________________________________
-m[u|f] Move files

Normally, when PKZIP archives a file, it is making a copy of that file. The
original file is not modified in any way. By choosing the -m option, you may
actually MOVE the file into the .ZIP file.

PKWARE Inc. PKZIP 35

After the ZIP operation is complete, PKZIP will delete all the files it just
placed into the .ZIP file. In effect moving the files from their previous
location into the .ZIP file.

This option may be combined with the Update (-u) and Freshen (-f) options.
When this is done PKZIP will perform the Update or Freshen as it would

normally, and then delete all the files that were placed into the archive.

_____________________________________
-o Set .ZIP file date to latest file in .ZIP file
-o- Set .ZIP file date to current date (used to override configuration file)

Normal default operation for PKZIP is to set the date of a .ZIP file it is
modifying or creating to the current date. By specifying the -o option you
can tell PKZIP to set the date of the .ZIP file equal to that of the oldest
file within the .ZIP file.

This option may be made the default, see PKZIP Configuration.

If this option is set, you may override it by using the -o- option. This
will force PKZIP to set the .ZIP file date to the current date. Note that
the -o- option must be completely separate from any other options, such as
the -f in the example:

pkzip oldfiles.zip -o- -f c:\wp51\text\*.wp

_____________________________________
-P Preserve specified path names
-P- Turn off path storage (used to override configuration file)

This option and the related -rp option control the storage of pathnames with
files inside of a .ZIP file. The -p (lower case) option is used only in
combination with the -r option as -rp (see -r for more information).

The -P (upper case) option can be used alone or as a -rP option. The -P
option causes PKZIP to store pathnames found on the command line as part of a
filename specified for compression. This command will only have an effect if
a file or files specified either on the command line or in a list file have
path names.

pkzip pathtest.zip -P c:\dos\attrib.exe

In the above command the file "attrib.exe" would be compressed into the .ZIP
file "pathtest". Because the -P option was specified, and because the path
"\dos" was specified as part of the file name, the

36 PKZIP PKZIP 2

file will be stored as "dos\attrib.exe". This means that the path name will
be available for reconstruction during extraction. Stored path names can be
seen when the .ZIP file is viewed.

pkzip path2.zip -P d:\coreldrw\*.cdr

In this example all files with the "cdr" extension will be placed into the
.ZIP file "path2", and will have the path "coreldrw\" stored with them.

This option may be made the default, see PKZIP Configuration.

If path storage is turned on in the configuration file, you may turn it off
for a particular command by using the -P- option.

pkzip mydoc.zip -P- c:\wp51\docs\zoofund.wp

_____________________________________
-q- Disable ANSI comments (used to override configuration file)

PKZIP retains ANSI control codes in comment text that is added to a .ZIP
file. During display of the comment text, PKZIP will normally disable ANSI
codes. If you want to have the ANSI control codes used by PKZIP when
displaying comment text, you must specify this option.

pkzip spacemp.zip -q se.diz

This option may be made the default, see PKZIP Configuration.

If the ANSI option is turned on in the configuration file you may temporarily
override it by using the -q- option. Note that the -q and -q- options must
be separated from any other options specified.

_____________________________________
-r Recurse subdirectories
-rp Recurse subdirectories, preserve the path structure below
-rP Recurse subdirectories, preserve path structure specified and below
-r- Turn off recursion (used to override configuration file)

When this option is specified, PKZIP will search the source directory for
subdirectories. If any subdirectories are found, PKZIP searches them for
files. If a further level of subdirectories is found in a subdirectory,
PKZIP will search these as well.

PKZIP will enter as many subdirectory levels as exist.

PKWARE Inc. PKZIP 37

pkzip mail.zip -r c:\mymail\*.*

Using the above command, all files contained within the "mymail"subdirectory,
as well as all files within any subdirectories, would be archived. Only the
file names would be retained, and not the names of the subdirectories.

pkzip mail2.zip -rp c:\mymail\*.*

The second example would preserve the same files as the first, but also keep
the names of any subdirectories found below the "mymail" subdirectory. Note
that the "mymail" subdirectory itself would not be retained since the -P is
not being used.

pkzip pay_june.zip -rP d:\payroll\*.*

The third example will compress all of the files in the payroll directory, as
well as all of the files in any subdirectories. The -rp would cause the
subdirectories to be recursed and stored. The -P will cause "\payroll" to be
stored as well. Without the -P, the "\payroll" portion of the path would not
be stored. This option may be made the default, see PKZIP Configuration.

** Please note that paths are not stored when the -r option is specified
without the p or P option. In order for paths to be stored, the -r
option must be accompanied by the -p or -P option.

_____________________________________

By specifying this option you may encrypt data as it
is compressed by PKZIP. This feature of PKZIP causes the information
contained within a .ZIP file to be scrambled. A file which has been
scrambled will be unreadable until extracted with the same encryption key.

If a password is not specified the user will be prompted for one.

** This feature should be used with caution. For a complete explanation of
the use of this option please see Using Data Encryption.

_____________________________________
-t Select files NEWER than or EQUAL to date
-T Select files OLDER than date

This option will allow you to select files according to their date. The date
specifier is a six-digit number conforming to the following formats:

38 PKZIP PKZIP 2

"American" style: mmddyy
040193 April 1st, 1993
103189 October 31st, 1989

"European" style: ddmmyy
010493 1 April, 1993
311089 31 October, 1989

"Japanese" style: yymmdd
930401 1993 April 01
891031 1989 October 31

PKZIP adapts itself to the date format for which your machine is configured
automatically.

All users within the United States use the first date format.

If you are outside the United States and are unsure of the configuration of
your computer, enter the DATE command at the DOS prompt. This will show you
the date format being used on your computer.

The -t and -T options may be combined to specify a date range.

These examples all use the "American" date format (mmddyy). To compress all
files created after or on November 4, 1992:

pkzip test.zip -t110492

To compress all files created before January 10, 1991:

pkzip test.zip -T011091

To compress all files created between October 1, 1992 and October 31, 1992:

pkzip test.zip -t100192 -T103192

If -t is used with no date, files with dates equal to the current date are
specified:

pkzip today.zip -t

_____________________________________
-u Update files

This option only affects PKZIP operations involving an already existing .ZIP
file. When -u is used in conjunction with a PKZIP command, the files
specified for archiving will be compared against the files already present in
the .ZIP file. If the file to be added into the .ZIP file is already present
and is not NEWER, PKZIP will not bother to re-compress the file.

PKWARE Inc. PKZIP 39

By using this option, you may save yourself time when archiving files that
are backed up repeatedly. This option differs from the behavior of the -f
option in that files which are not already present in the .ZIP file will be

PKZIP p:\backup\sdsource.zip -u d:\c700\work\sd*.*

In this example a .ZIP file called "sdsource.zip" is created in a "backup"
directory on the P: drive. All files in the source directory matching the
file specification will be added or updated.

_____________________________________
-v[b][r,c|d|e|n|o|p|s][m] View [brief] file information
-vt[m] View Technical file information

This option will display technical information concerning the files contained
within a .ZIP file. There are several options available with the View
option. Each of the -v options may have an m' added to it, causing the
screen to pause every 25 lines.

In it's simplest form the -v by itself gives a display similar to this:

pkzip am70 -v

PKZIP (R) FAST! Create/Update Utility Version 2
PKZIP Reg. U.S. Pat. and Tm. Off. Patent No. 5,051,745

80486 CPU detected.
XMS version 3.00 detected.
Novell Netware version 3.11 detected.

Searching ZIP: AM70.ZIP - PKWARE Support BBS (414)354-8670

Length Method Size Ratio Date Time CRC-32 Attr Name
------ ------ ----- ----- -------- ----- -------- ---- ------------
76812 DeflatX 23139 70% 01-30-92 12:03 971fea04 --w- AM.DOC
191872 DeflatX 80773 58% 01-31-92 15:02 25cf904a --w- AM.EXE
11664 DeflatX 6935 41% 01-30-92 11:57 183b5606 --w- AM.HLP
149567 DeflatX 63211 58% 01-31-92 15:02 bf2fffee --w- AM.OVR
2262 DeflatX 1021 55% 03-16-91 10:39 50b63fc5 --w- NEW-WARE.BBS
5327 DeflatX 2068 62% 10-14-91 11:25 924efc72 --w- PATHINFO.TXT
130 DeflatX 118 10% 11-14-90 10:05 fd1b1183 --w- PROGMENU.AM
3664 DeflatX 1644 56% 04-04-91 10:32 c8d5c9cf --w- PROGMENU.DOC
1688 DeflatX 740 57% 11-10-90 11:27 8ef23b8a --w- READ!.POP
1416 DeflatX 595 58% 01-30-92 12:03 32b1497e --w- VENDOR.DOC
2167 DeflatX 949 57% 01-30-92 12:07 2e13f4d4 --w- WARNING.!!!
2200 DeflatX 1049 53% 01-30-92 12:01 20c953ee --w- WHAT'S.NEW
------ ------ --- ------------
448769 182242 60% 12

40 PKZIP PKZIP 2

This is the standard, unsorted view of the .ZIP file contents. The columns
displayed from left to right consist of:

Length Original (non-compressed) size of the file
Method Type of compression routine used on this file
Size Current (compressed) size of the file
Ratio Percent reduction in file size
Date Date of the file (as it would appear in a directory listing)
Time Time of the file
CRC-32 The value of the file as calculated by the CRC-32 routine
Attribute The stored attributes of the file, (system, hidden, writable,
Name Name of the file

The -vb (brief) option will display an identical listing, minus the CRC-32
and Attribute columns.

this option is active, a report similar to the following will be displayed:

C:\>pkzip am70 -vt am.doc

PKZIP (R) FAST! Create/Update Utility Version 2
PKZIP Reg. U.S. Pat. and Tm. Off. Patent No. 5,051,745

80486 CPU detected.
XMS version 3.00 detected.
Novell Netware version 3.11 detected.

Searching ZIP: AM70.ZIP - PKWARE Support BBS (414)354-8670

Filename: AM.DOC
File type: text
Attributes: --w-
Date and Time: Jan 30,1992 12:03:54
Compression Method: DeflatX
Compressed Size: 23139
Uncompressed Size: 76812
32 bit CRC value: 971fea04
Created by: PKZIP: 2.0 under MS-DOS
Needed to extract: PKUNZIP: 2.0

The "File type" is a judgement made by PKZIP during compression based upon
the contents of the file. It will be either "BINARY" or "TEXT".

The "Created By" lists both the version level of PKZIP and the operating
system used when the .ZIP file was created. Below that is listed the minimum
version of PKUNZIP that would be required to extract the file.

PKWARE Inc. PKZIP 41

Sort Order

By adding one of the following letters to the -v, -vb, or -vt command you can
specify the sort order of the display.

d File Date
e File Extension
n File Name
o Natural Order (Sort order can be permanently specified in the
configuration file, the "o" option will override this.)
p Percentage of compression, smallest to largest
s File Size, smallest to largest

Any of the above sort orders may be reversed with an "r".

r Reverse display order

If you wish to also view the individual file comments with the listing
specify "c" on the command line.

pkzip hildie.zip -vbcnr

This example would display a brief list of the file contents, including
individual file contents, and sorted in reverse name order.

View With MORE

pkzip totoro.zip -vtrm

This example makes use of the "more" feature available with the view command.
This causes the display to pause after every 25 lines of information. Adding
an m' to any -v command will cause it to pause every screenful.

_____________________________________
-w Take hidden, system files
-W Skip hidden, system files (used to override configuration file)

Normally PKZIP will skip any Hidden or System files that fall within the
files specified for compression. (See the -j option and your DOS manual for
an explanation of what Hidden and System files are).

If you wish to force PKZIP to take Hidden or System files you may do so by
specifying the -w option, combined with the appropriate

42 PKZIP PKZIP 2

attribute. These attributes will normally be stored as part of the .ZIP file
information unless specified with the -J option.

pkzip all.zip -whs a:\*.*

This example would zip all files in the root of the A: floppy drive,
including any hidden or system files.

pkzip att_test -whs -Jhs c:\*.*

This would take all files as above, and would also discard the file
attributes. This option may be made the default. See PKZIP Configuration.

_____________________________________
-x Exclude files
[email protected] Exclude a list of files

Using -x allows you to specify files that you do NOT want used as part of a
PKZIP operation. Either a specific filename or a file pattern may be
specified. You may use -x multiple times on the same command line, and you
may exclude a list of files. The list file is structured and treated
identically to all other List Files.

pkzip testfile.zip *.txt -xpizza.txt

This example would compress all the files with a "txt" extension that are in
the current directory, but would NOT compress the file "pizza.txt"

pkzip test2.zip *.* -x*.txt

Here we take all of the files EXCEPT the files with a "txt" extension.

pkzip test3.zip *.* -xcommand.com -xautoexec.* -xconfig.*

In this last example all files are specified for extraction, one specific file
is being excluded, and any files which match two file patterns are excluded.

List Files" page 63

_____________________________________
-z Create or modify a .ZIP file comment

Each .ZIP file may have a comment embedded into it. This comment will be
displayed when the file is extracted, viewed or modified. A comment may be
added to an existing file, or added when a .ZIP file is first created. PKZIP
will prompt you for the .ZIP file comment, and allow you to enter up to 127
characters.

PKWARE Inc. PKZIP 43

It is possible to embed larger comments (up to 4096 characters) by
using the following procedure:

1) Create the .ZIP file.

2) Create the comment file (comment.txt).

This can be done with any editor that is able to output a standard DOS text
file. It must be plain ASCII or ANSI text (if it is ANSI text you must also
use the -q option). Although the filename comment.txt is used here, any
filename may be used.

3) Issue the command:

pkzip zipfile.zip -z < comment.txt

This makes use of the MS-DOS redirection ability, redirecting the contents of
the file COMMENT.TXT as the input for the comment of ZIPFILE.ZIP.

3a) To add a comment to multiple .ZIP files (within the current directory)
Issue the command:

for %f in (*.ZIP) do pkzip %f -z < comment.txt

Note that the text of a comment is not compressed. If you have a large
message you wish to attach to the .ZIP file it is better to have a short
summary and put any longer message in the .ZIP file itself. Technically, a
.ZIP file comment may be as large as 64k, but PKUNZIP will not display a .ZIP
file comment this large.

_____________________________________
-! Encrypt authenticity verifiable data into the .ZIP file

Using this command option will cause PKZIP to embed Authenticity Verification
(AV) information within the .ZIP file it is creating.

This option may only be used if you have received and installed the AV
information for your fully registered copy of PKZIP from PKWARE Inc.

Note that AV codes for PKZIP 2.0 and above are different than those used for
version 1.10.

Please see the section on Authenticity Verification for complete information.

44 PKZIP PKZIP 2

_____________________________________
@[filename] Specify LIST file

This option specifies a plain ASCII text file to be used as the list
of files to be archived. PKZIP will read in this file listing and generate
the complete list of files that must be processed. A list file may contain
wild card specifications (?,*) as well as exact file names:

files.bbs *.txt
*.* text\news.asc
d:\text\*.ans c:/dos/edit.com

All of the above would be valid entries in a list file. Notice that both
forward and backward slashes may be used and mixed.

The size of a list file that may be processed is limited. The total size of
the list file depends upon two factors.

The first is path storage. If paths are specified in the list file and are
NOT stored with the -P option, the list file size is limited to approximately
7000 bytes.

If paths are specified and are stored, the list file size is limited to 9700
bytes.

If a list file has drive letters specified as part of the file names within
the file, the maximum list file size is reduced. When paths are not stored
the maximum size is 5100 bytes, when they are stored 6600 bytes.

List File Size Limits No Path Storage Path Storage (-P)

Drive Letters in List File 5100 bytes* 6600

No Drive Letter 7000 9700

*These numbers are approximate and may vary depending on your
configuration.

If the list file is too big, you will receive an "Insufficient Memory" error.
If you have a list file which is too big, you may split it into two or more
smaller list files and perform multiple PKZIP operations.

_____________________________________
-& Create multi-volume archive

When this option is specified PKZIP will create a .ZIP file which is larger
than a single floppy disk. This option may only be specified when creating a
.ZIP file on removable media (i.e. a floppy disk or high capacity cartridge
drive).

PKWARE Inc. PKZIP 45

If PKZIP encounters an unformatted floppy disk it will format it before it
continues. This means that you will not need to anticipate the exact number
of floppies that will be needed ahead of time. For complete information on
the use of this and related options, please see the PKZIP Backup Guide.

_____________________________________
-$[d] Store Volume label as part of .ZIP archive When this option is specified PKZIP will store the Volume Label of the specified device as part of the information within the .ZIP file it is creating or modifying. The letter of the drive containing the desired label should be specified in place of the [d] on the option statement. Do not include a colon. PKZIP doug.zip -rp -$b b:*.*

In this example a .ZIP file called "doug" is created in the current
directory. It consists of the complete contents of the B: drive including
it's subdirectories and Volume Label.

Volume Label
Every drive that can be accessed on your computer is referred to as a VOLUME.
This includes not only your hard disk but also floppy disks, and may include
other storage devices such as CD ROM drives or large capacity removable
drives such as those manufactured by SyQuest or Iomega. Each of these drives
may have a VOLUME LABEL. This is a text string which identifies it. This is
particularly useful on removable media, such as floppy disks. Each floppy
may have a label which is meaningful to you, or to a piece of software. For

_____________________________________
[email protected] Generate LIST file

** Please note that this option is different from using a list file. When
PKZIP is reading a list file there is no dash in front of the @.

This option causes PKZIP to generate a LIST file out the specified file name
instead of performing a ZIP operation. The output file will be a plain ASCII
file with one file name per line, and will be identical to the listing of the
files PKZIP would have placed into a .ZIP file had the [email protected] option not been
used.

If the -rp is specified the list file will include paths in addition to the
file names. If the pattern/filespec is on a different drive, the drive
letter will be included as well.

pkzip dummy.zip [email protected] *.*

This would generate a list file called "test.lst". Note that the dummy
zipfile name is needed. The name of the .ZIP file specified does not matter
as it is not actually used.

46 PKZIP PKZIP 2

pkzip dummy.zip [email protected] -rp d:\*.*

This would create a list file of the ENTIRE contents of the D drive. If the
current directory is not D:\ when this command is issued the drive will be
included with each filename in the list file.

This option can also be useful in conjunction with an existing .ZIP file.
For example, to generate a list of all files which have been modified since
they were placed in the .ZIP file "akiko.zip":

pkzip akiko.zip -f [email protected] *.*

_____________________________________
-= Open file in compatibility mode

This option will cause PKZIP to open files in "compatibility" mode, as
opposed to "sharing" mode.

Using this option will cause PKZIP to ignore most file locking, including
share.

In some networking situations this will allow you to read a file which would
otherwise not be accessible due to file locking.

PKTMP

During compression, PKZIP uses a temporary file. As each file is added to
the .ZIP file it is first compressed into this temporary file and then
appended to the .ZIP file.

By default this temporary file is created in the current directory.

You may have this temporary file created in a different directory by setting
the environment variable PKTMP. Set this equal to the drive you wish to use

For optimal performance on your local harddrive, the PKTMP could be set equal
to a RAM drive if a large enough one is available. The temporary file
location must have enough free space to hold the largest file in it's
compressed state.

For optimal performance when creating a .ZIP file on a Novell Netware volume,
set the PKTMP equal to any drive on the same server. This will achieve the
best performance, and is superior to using the local hard drive or the RAM
drive.

C:\>set pktmp=z:\

PKWARE Inc. PKZIP 47

PKUNZIP

Command Reference

Description of command options

Items contained in brackets are optional and need not be included. Where
there is more than one item separated by commas you may use any ONE of those
options following the main option character. Where there are options in
brackets you must include that option, or choose one of those in the series.
When choosing options from a bracketed series, you may use more than one of
these options if they are separated by commas. If the options are separated
by a vertical bar (|) then you may only choose one.

Command option Guide

_____________________________________
-c Extract files to the console
-cm Extract files to the console with more (pause between screens)

This command will extract files from a .ZIP file and display them on the
monitor. The extracted files will scroll continuously on the screen. The
software can be told to pause after each screen of output by using the -cm
option.

pkunzip pkz200.exe -cm pkzip.doc

This example lists the text file pkzip.doc to the screen from the self-
extracting .ZIP file "pkz200.exe". The display will pause and wait for a key
press between each screen of text.

_____________________________________
-d Restore directory structure

This command option uses the path names that have been stored in the .ZIP
file by PKZIP. If the stored paths do not exist at the extraction
destination, they will be created.

For example: If the following directory tree exists on drive C:

48 PKUNZIP PKZIP 2

C:\ABCDIR1
DIR2DIR3
DIR4
XYZ
PDQ

If you executed:

pkzip -rp a:stuff c:\abc\*.*

A .ZIP file called STUFF would be created containing all the files in the
directory "abc", as well as any subdirectories below that directory.

If you then executed:

pkunzip -d a:stuff c:\xyz\newabc

The directory structure of drive C: would now look like this:

C:\ABCDIR1
DIR2DIR3
DIR4
XYZNEWABCDIR1
PDQ DIR2DIR3
DIR4

All of the files and subdirectories which were originally in the "abc"
directory are now located in the "newabc" directory (shown in the box). Note
that the "newabc" directory was created by PKUNZIP because it was specified
on the command line.

Directory Structures"

_____________________________________
-e[r][c,d,e,n,p,s] Extract files in a sorted order

This option is used to specify a particular order in which to extract files
from a .ZIP file. These options are used along with the -e. Each option
will cause extraction sorted in ascending order of the particular criteria.

PKWARE Inc. PKUNZIP 49

Sort Options

r Reverse sort order

c CRC Value

d Date

e File Extension

n File Name

p Percentage (ratio) of compression

s File Size

The most useful of these options will normally be extraction in order of
Date, Name, or Extension. Extraction in value of CRC order is in effect
a random extraction.

In this example the files contained within the .ZIP file ZUCKER would be
extracted in the order of their names.

pkunzip -en zucker.zip

To reverse the order of extraction combine with the [r].

pkunzip -ern zucker.zip

_____________________________________
-f Freshen files in extract directory

This function is the inverse of the freshen function in PKZIP. When this
option is used, the PKUNZIP command will be executed normally except that
files will be extracted only if:

-> The files already exist in the target directory or directories

AND

-> The files in the .ZIP file are newer than the files in the
extract directory.

_____________________________________
-h Display command summary (Help)

This option will display a brief summary of the command switches available.

50 PKUNZIP PKZIP 2

_____________________________________
-j Specifies masking of file attributes (default)
-J Specifies extraction of file attributes

During normal use, PKUNZIP does not extract files as being hidden, system or
read-only. If there are files stored within a .ZIP file that have any of
these attributes, you must specify the -J (upper case) option to keep the
attributes.

pkunzip stuff.zip -Jhsr

In this example all the attributes would be preserved. For an explanation of
what file attributes are see your DOS manual.

_____________________________________

This command will display the software license agreement.

_____________________________________

This option is the compliment of the -u option in PKZIP.
When this option is used files will only be extracted if:

-> They do not exist already in the target directory

OR

-> They are newer than the file already in the target directory

This means that files which already exist and are more recent than those in
the .ZIP file will not be overwritten.

_____________________________________
-o Overwrite previously existing files
-o- Never overwrite files

This option will cause PKUNZIP to overwrite any files that already exist in
the target directory, without prompting. When this option is not specified
PKUNZIP will pause if it attempts to extract a file that already exists. It
will prompt you:

PKUNZIP: Warning! File XXXXXX already exists. Overwrite (y/n/a/r)?

If you forget to specify the -o when you give the PKUNZIP command, you may
respond to the above question with "a" (All). PKUNZIP will continue as
though a -o had been specified originally.

The -o- option will cause PKUNZIP to skip any file which already exists,
regardless of file sizes or dates.

PKWARE Inc. PKUNZIP 51

_____________________________________
-p[a/b] [c] [#] Extract files to the printer

This option is used to extract files from a .ZIP
file and send them to a printer (serial or parallel) for printing. The
command parameters are defined and several examples are given here to make
this complex command clear.

-pa Extract to the printer device in ASCII mode

-pb Extract to the printer device in BINARY mode

ASCII mode is commonly used to print text. It will form feed after each
file when multiple files are being extracted.

Binary mode does not send any extra characters, extracting purely the
contents of the file to the specified device. This is commonly used to send
fonts or graphics to a laser printer. It will not form feed between files.

The a and b options cannot be mixed in the same command line.

In combination with the -pa or -pb option you may specify the port to which
PKUNZIP should extract. If only a number between 1 and 4 is specified, the
extraction will go to that number of printer port (LPT1 through LPT4). If a
"c" is specified PKUNZIP will extract to the COM port. The "c" option may
also be combined with a number from 1 to 4, specifying COM1 through COM4.

This example will extract the specified files to the parallel port LPT1.

pkunzip sesame.zip *.doc -p

This example is extracting files in binary mode to a printer on the second
serial port.

pkunzip graphix.zip *.eps -pbc2

Here the files are extracted to a printer on the second parallel port in
ASCII mode.

pkunzip docs.zip -pa2
_____________________________________
-q- Ignore ANSI control codes (default)

By default, ANSI control codes embedded in comments are not displayed by
PKUNZIP. When the -q option is used these ANSI sequences will be output and
interpreted by the ANSI device driver if one is present.

52 PKUNZIP PKZIP 2

This option can be forced on by default in the configuration file. The

ANSI=enabled

The enabling of ANSI control codes in the configuration file may be
overridden at the command line by using -q-.

ANSI control codes provide the feature of adding color to text on a system
which has ANSI.SYS loaded in the CONFIG.SYS.

** However, ANSI control codes also perform many other features, some of
which can be potentially hazardous if you do not know the source and
contents of the comment. It is for this reason that PKZIP and PKUNZIP
filter out ANSI control codes unless you explicitly tell them not to.

PKWARE has created an addition to the ANSI.SYS driver called PKSFANSI
(PK Safe ANSI). By using this in conjunction with your normal ANSI.SYS you
can be sure of receiving only the ANSI characters that you want. PKSFANSI
is provided by PKWARE free of charge. It is included on the PKZIP
distribution disk.

_____________________________________

This option is used to unscramble (decrypt) the files in a .ZIP file. PKZIP
has a -s option which is used to encrypt the files. If a password is not
specified the user will be prompted for it. When extracting a .ZIP file that
has been encrypted, the files will not be extracted unless the correct key
(password) is included on the command line or entered at the prompt.

** Notice there is no space between the -s and the encryption key.

pkunzip payroll.zip -o -sSecret *.dbf

In the above example, all files with a "dbf" extension will be extracted and
the key "Secret" applied to them. This will only work if the files have been
compressed with the key of "Secret" applied to them.

** This option is case sensitive. This means that "Secret", "secret" and

Encryption", PKZIP -s

PKWARE Inc. PKUNZIP 53

_____________________________________
-t Test .ZIP file integrity

This option is used to test files within a .ZIP file in order to verify that
they are valid and have not been corrupted. PKUNZIP will perform all the
actions that would normally be taken during a .ZIP file extraction, except
that files will not be written to disk.

The data will be extracted and checked against the CRC to ensure it's val-
idity. After each file is checked it's name will be displayed with an "OK".

C:\PKSTUFF>pkunzip zc102 -t

Searching ZIP: ZC102.ZIP - PKWARE Support BBS (414)354-8670
Testing: ZC.DOC OK
Testing: ZC.EXE OK
Testing: ORDER.FRM OK
Testing: VER-HIST.TXT OK

In this example a command is issued which performs a test on the .ZIP file
"zc102". As each file is tested its name is displayed. Note that the .ZIP
file comment is displayed.

If you test a file that is not a .ZIP file, or specify particular files
within the .ZIP file that do not exist, you will receive the message:

PKUNZIP: (E11) No file(s) found.

Testing a .ZIP file with errors would produce a display something like this:

Searching ZIP: PROBLEM.ZIP
Testing: WORLD.M~ PKUNZIP: (W15) Warning! file fails CRC check
Testing: CORELDRW.BPT OK

PROBLEM.ZIP has errors!

Normally, a CRC failure as above indicates that a file has been damaged
either in storage or transmission. For instructions on attempting to repair
a .ZIP file that has been corrupted, see PKZIPFIX in the Trouble Shooting
section.

54 PKUNZIP PKZIP 2

_____________________________________
-v[b][r,c|d|e|n|p|s][m] View [brief] file information
-vt[m] View Technical file information

The -v option for PKUNZIP is the same as the -v option for PKZIP, with one
exception. In PKUNZIP the c' option for sorting refers to the CRC value.
For PKUNZIP this option refers to the Comment of a file.

For complete information, please see the -v option in the PKZIP Command
Reference.

_____________________________________
-x Exclude files from extraction
[email protected] Exclude list of files from extraction

By specifying a -x as part of the PKUNZIP command, you may prevent a file or
group of files from being extracted. Using -x with a list file will allow
you to exclude a list of files from extraction.

pkunzip fd201.zip -x*.doc

In this example all files are extracted from the .ZIP file "fd201.zip" except
for those with a ".doc" extension.

-x may be used more than once on the command line, and may be used in
combination with specific filespecs and list files.

_____________________________________
-$Restore volume label This command is used to restore any volume label that has been stored in the .ZIP file. It is important to remember that the PKZIP command used to store a volume label does not store a drive letter along with the label. Upon extraction, the volume label will be assigned to the target drive. C:\>pkunzip davebk.zip -$ a:

This example will extract the contents of "davebk.zip" to the A: drive. If a
volume label was stored as part of the .ZIP file, the volume label for the
floppy in drive A: will be reset to the one contained in davebk.zip.

See Also: PKZIP -$PKWARE Inc. PKUNZIP 55 _____________________________________ [email protected] Generate LIST file Please note that this option is different from using a list file. When a list file is to be read by PKZIP there is no dash in front of the @. Using this option will cause a list file to be generated using the specified file name instead of a normal PKUNZIP operation being performed. The output file will be a plain ASCII file with one file name per line, and will be identical to the listing of files PKUNZIP would have extracted had the [email protected] option not been used. pkunzip underdem.zip [email protected] This would create a list file called "showme.lst" containing a list of all the files present within the .ZIP file. File specs may be used in conjunction with this type of command, in the same manner as a normal extraction command. Also the -e option may be used for sorting. The following example creates an alphabetized list file of only the ".doc" files within it: pkunzip manuals.zip -en *.doc [email protected] The extension of ".lst" on a list file is not mandatory, but recommended for clarity. See Also: "Using List Files", PKZIP @, [email protected] 56 PKUNZIP PKZIP 2 PKSFX/ZIP2EXE The PKZIP utilities offer a self-extraction capability. This means that you can make a .ZIP file into an .EXE file. This file will in effect be able to extract itself. A PKSFX (PK-Self Extracting) file consists of a .ZIP file which has been transformed into a self-extracting file by the utility ZIP2EXE. There is no utility or file called "SFX" or "PKSFX", but the self-extracting file will show PKSFX on the banner in the same manner as PKUNZIP: PKSFX (R) FAST! Self Extract Utility Version 2 Copr. 1989-1992 PKWARE Inc. All Rights Reserved. PKSFX/h for help PKSFX Reg. U.S. Pat. and Tm. Off. Creating a Self-Extracting File In order to create a self-extracting file, you must first create a .ZIP file. Once this .ZIP file is created, use the ZIP2EXE utility to transform this .ZIP file into an .EXE file. D:\>zip2exe test.zip ZIP2EXE (tm) Self-Extract Creator Version 2 Copr. 1989-1992 PKWARE Inc. All Rights Reserved. ZIP2EXE/h for help TEST.ZIP => TEST.EXE D:\> As you can see, an .EXE file by the same name as the .ZIP file is created. The original .ZIP file is not deleted. Meet Junior ** Turning a .ZIP file into an .EXE file increases the size because of the included extraction program. The added size is approximately 13.5K bytes. If space is at a premium, and you are willing to sacrifice functionality for size, try PKSFX Junior(TM). The PKSFX Junior is somewhat smaller, and offers very few command line options due to this reduced size. The options which are available with the PKSFX Junior are indicated on the PKSFX command summary. To create a PKSFX Junior file, add the command line option -j when performing the ZIP2EXE step. PKWARE Inc. PKSFX/ZIP2EXE 57 D:\>zip2exe -j test.zip ** PKSFX Junior adds approximately 3K bytes to the .ZIP file. PKSFX Junior can handle a maximum of 512 files. Although PKSFX Junior has this limit to the number of files it can handle, there is no limit to the file size. PKUNZIP Junior PKUNZJR.COM The PKUNZIP Junior program is an extremely small stand-alone extraction program. It is used in the same manner as PKUNZIP but it has only the functionality of the PKSFX Junior self-extractor. PKUNZIP(R) FAST! Mini Extract Utility Version 2 Copr. 1989-1992 PKWARE Inc. All Rights Reserved. PKUNZIP Reg. U.S. Pat. and Tm. Off. Usage: pkunzjr [-o] filename[.zip] [output_path] PKUNZIP Junior has one option, -o. This option is the same as that for PKUNZIP (Senior). PKUNZIP Junior accepts the .ZIP file name on the command line, and may optionally accept an output path. PKUNZIP Junior cannot extract specific files, but must extract the entire .ZIP file. PKUNZIP Junior cannot extract a file containing more that 512 files, and does not support multiple volume .ZIP files. 58 Introduction PKZIP 2 PKSFX Command Summary Command line syntax and options are the same as PKUNZIP. The options listed below are offered by a self-extracting file. Syntax: pksfx [option] [d:\path] [file]* [file]* PKSFX indicates the name of the self-extracting file you are executing. No options are necessary if you wish to simply extract all files to the current directory. If you wish to extract the contents to another directory, indicate the drive and/or path the files should extract to. To extract only particular files, indicate the name(s) at the end of the command line. Options: @listfile.lst Specify list of files for extraction* -c[m] Extract to console* -d Re-create directories stored in .ZIP file* -l Display software license agreement* -n Extract only newer files* -o Overwrite existing files -p[a|b][c][#] Extract to printer* -s Decrypt with password* -t Test file integrity* *Indicates options not available in the PKSFX Junior and PKUNZIP Junior programs. Options should be placed after the self-extracting files name. If multiple options are used they must be separated by a space and each must have its own option indicator (either - or /). All options behave in the same manner as they do with PKUNZIP, with one exception. The -s option cannot accept keyboard entry. A password entered with a self-extracting file must be able to be entered from the command line. PKWARE Inc. PKSFX/ZIP2EXE 59 Modifying a Self-Extracting File A self-extracting file can be operated upon by PKZIP and PKUNZIP in a manner identical to normal .ZIP files. You will need to specify the full file name including the EXE extension. C:\>pkzip test.exe -f d:\*.* There is no difference between operating on a self-extracting file and a normal .ZIP file. A Note About Self-Extracting Files When you create a self-extracting file, you are adding a copy of the extraction code to that file. Since this code duplicates the functionality of the PKUNZIP program, it makes sense to use the self-extractor only when PKUNZIP will not be present on the machine to extract the file. If you create many self-extracting files for your own use, you will be using more space unnecessarily. Therefore it is recommended that you only use the self-extracting capability when you are sending a file to someone that you know does not have a compatible PKUNZIP. Stripping the PKSFX Code You may have occasion to want to keep the contents of a self-extracting file, but wish to turn it back to a normal .ZIP file. The ZIP2EXE offers an option to reverse the process. This is done with the command line switch -e: F:\>zip2exe -e test.exe ZIP2EXE will recognize normal and PKSFX Junior files automatically. Sending a Self-Extractor If you are sending a PKSFX file to somone who is not familiar with data compression and/or PKWARE products, we recommend you tell them to do the following: 60 Introduction PKZIP 2 With PKSFX Junior: 1) Create a temporary directory on the hard drive to hold the files contained in the self-extracting file. C:\>md temp 2) Change to the directory that was just created. C:\>cd temp C:\temp> 3) Place the diskette containing the self-extracting file into the A: or B: drive. 4) Type the name of the self-extractor, including the path to the floppy drive. C:\temp>a:test With normal PKSFX: 1) Place the diskette containing the self-extracting file into the A: or B: drive and change to that drive. C:\>a: 2) Type in the following; A:\>test -d c:\temp You may also wish to create a batch file or text file on the floppy disk containing the above steps. The contents of the self-extractor will be placed into this temporary directory. They can then examine or move the files at their leisure. The -d option ensures that any subdirectory information included will be re-created, and causes PKSFX to create the temporary directory for the user. A site license is required by a corporation, company, educational institution, or governmental agency for use of PKWARE software on the total number of computers that will use the software. Use of PKWARE programs for personal use is covered by your purchase of a single license for PKZIP. A Distribution License is required by a corporation, company, educational institution or governmental agency to use PKWARE programs to facilitate the distribution of software to outside parties. Please note that if a self-extracting file is used, a Distribution License is required, because PKWARE code is distributed in the form of the PKSFX program combined with the file(s) being distributed. Please contact PKWARE for more information if you intend to distribute self- extracting files. PKWARE Inc. PKSFX/ZIP2EXE 61 Confirm before extract If a PKSFX file has a .ZIP file comment attached, this comment is displayed before the file is extracted. By imbedding a Control-S character (Hex 13, ASCII 19), you can cause PKSFX to pause. The display will look like this: Searching EXE: XXXXX.EXE - . . . (ZIP file comment text) . . . Do you want to extract these files now (y/n)? Press 'Y' to extract the files, 'N' o abort. Note that the Control-S character is not displayed. This control character may be located anywhere within the comment. If the user aborts by pressing 'N', an exit code of 12 will be returned by PKSFX. PKSFX Junior will return an exit code of 8. See: PKZIP -z for more information on .ZIP file comments, Appendix D for more information on exit codes. Memory Requirements The memory requirements for PKSFX are similar to those of PKUNZIP. PKSFX Junior, and PKUNZIP Junior require a minimum of 50K RAM free, and a maximum of 64K RAM free. 62 Introduction PKZIP 2 USING LIST FILES PKZIP, PKUNZIP and PKSFX offer a powerful feature; list files. List files are simply listings of files. They are used to simplify command lines, and make repetitive tasks less troublesome. List files can allow you to perform some complex tasks which otherwise would not be possible. List files can not only be read, but can also be created by PKZIP and PKUNZIP. Also, list files can be created and used by other programs, such as StupenDOS", PKZOOM" and PKZMENU". PKZIP and PKUNZIP use List Files in two ways: files to be included and files to be excluded. If a List File is being created, the contents will reflect a listing of those files which would have been added, deleted, extracted or listed during a normal PKZIP/PKUNZIP operation. List File text may contain: -> Comments -> File Names -> Wild Cards -> Exact Path Names and Files -> Drive Letters List File text consists of plain ASCII. These files may be created using any text editor which can produce plain ASCII files, sometimes referred to as "DOS Text". All of the following lines would be valid in a List File: clowns.bmp *.exe project.* MSLR????.QWK ;This is a comment emp\census.txt ;This is also a valid comment D:\data\february.wk1 D:\games\majong\*.* D:\QWK\*.REP A line in a list file is treated in an identical manner to files specified on the command line. Note that only files and comments are valid in a list file. Both forward and backward slashes may be used in a list file. PKWARE Inc. Using List Files 63 Reading List Files A list file can be used in two different ways with PKZIP and PKUNZIP: -> Files to be acted upon in a ZIP operation. -> Files to be excluded from a ZIP operation. List files are usually specified with an @ (ASCII 64, normally above the 2 on your keyboard). The list file character can be changed by modifying the configuration file. Please note that the list file generation option ([email protected])) will also change to the selected list file character. Avoid using a character already used for another option. The simplest example of using a List File is when a .ZIP file is going to be created containing the files specfied. If a List File called "test.lst" was created containing the following lines: *.COM 300Z.TXT And then used in a PKZIP command: C:\>pkzip sample.zip @test.lst All .COM files in the current directory would be added to the .ZIP file "SAMPLE.ZIP", as well as the file "300Z.TXT" if it existed. The contents of a List File that is specified are included. The contents of a List File specified after a -x are excluded. Multiple List Files to be included and excluded may be specified on the command line in addition to file names being listed alone on the command line. Following are several example usages of List Files, each with a short description of what action would be caused. C:\>pkzip first.zip @abc.lst [email protected] All files specified in "abc.lst" would be added to the .ZIP file "first.zip". Any files that match the file specification in "xyz.lst" would not be added. C:\>pkzip second.zip -d @abc.lst -x*.txt All files listed in "abc.lst" would be deleted from the .ZIP file "first.zip". Any files matching the "*.txt" specification would not be deleted. C:\>pkzip -vc third.zip @xyz.lst 64 Introduction PKZIP 2 A file listing with comments will be shown for all files in "third.zip" which are listed in "xyz.lst" C:\>pkzip -rp backup.zip *.* [email protected] A .ZIP file containing the entire drive would be created, excluding any files which match those in "noback.lst" ** Don't forget to use the @ in front of a list file name. If you do not use the @, the list file itself will be added to the .ZIP file. Generating List Files The Generation of list files can have many uses. Some suggested ways to use this feature are: -> Dividing Files to be Zipped into logical groups -> Easy exclusion of files already Zipped from a PKZIP operation -> Complex Batch File operations Keep in mind that a plain ASCII list file can be fed through other programs, like 'sort', and can be used by some other applications such as StupenDOS or PKZMENU. The list file generated by PKZIP or PKUNZIP when the [email protected] option is used contains the names of all the files which would have been acted upon in a normal ZIP operation. In a simple PKZIP command, the list file will contain a listing of all the files which would have been archived by PKZIP. If the list file is generated with a freshen or update command, the list file will contain those files which would have been added/updated in the .ZIP file. To generate a list file of your entire C: hard drive: C:\>pkzip dummy -rp [email protected] Note that the "dummy" .ZIP file name is necessary to have a valid PKZIP command. The list file generated by PKUNZIP will contain those files which would have been extracted. PKWARE Inc. Using List Files 65 Using List files to debug You may find the generation of list files helpful when you are testing batch files. Let's say you have created a batch file which should compress several files as a backup procedure. Perhaps these files are very large and it takes several minutes to compress each one. This means that if you were to test the batch file simply by running it, it could take quite a while to find a problem and fix it. By generating a list file of what would have been compressed, you can check very quickly to make certain that the proper files are being selected. List file size The size of a list file that may be processed is limited. The total size of the list file depends upon two factors. The first is path storage. If paths are specified in the list file and are NOT stored with the -P option, the list file size is limited to 7000 bytes. If paths are specified and ARE stored, the list file size is limited to 9700 bytes. If a list file has drive letters specified as part of the file names within the file, the maximum list file size is reduced. When paths are not stored the maximum List File size is 5100 bytes. When they are stored the maximum List File size is 6600 bytes. Note that this table corresponds to the total size of all list files being used in a single command. List File Size Limits No Path Storage Path Storage (-P) Drive Letters in List File 5100 bytes* 6600 No Drive Letter 7000 9700 *These numbers are approximate and may vary depending on your configuration. If the list file is too big, you will receive an "Insufficient Memory" error. If you have a list file which is too big, you may split it into two or more smaller list files and perform multiple PKZIP operations. 66 Introduction PKZIP 2 Be Creative The list file functions give you a whole new level of power with PKZIP. When defining a problem and searching for a solution, don't forget to consider the power of these features. Using the list file features can give you access to new abilities PKZIP would not have inherently. Here are some example situtations: Removing Old Files Suppose a .ZIP file 'work' contains 45 files. The contents of 'work' are extracted to a work directory and several of the files are deleted. How do you delete these files that are no longer necessary from the 'work' archive? Doing it manually would be very tedious. First create a list of the contents of the directory. By redirecting these file names to a list file you can capture an image of what needs to be kept in the .ZIP file. C:\work>pkzip dummy.zip *.* [email protected] The list file 'keep.lst' now contains the files we want preserved in the .ZIP file, files not in this list will be deleted: C:\work>pkzip work.zip -d *.* [email protected]:\work>del keep.lst The WORK.ZIP file now contains only those files which are also in the work directory. Sorting .ZIP Files Files will be added to a .ZIP file in the order that they are listed in the list file. This can be useful if you want the contents of a .ZIP file to be in a particular order. After generating a list file, bring it into an editor and modify it to meet your need. To create a .ZIP file that is sorted in alphabetical order, you would use the following series of commands: C:\work>pkzip test.zip *.* [email protected] C:\work>sort < test.lst > sort.lst C:\work>pkzip test.zip @sort.lst C:\work>del test.lst sort.lst The SORT command used above is a standard DOS program. See your DOS manual for further information on this useful feature. PKWARE Inc. Using List Files 67 USING DATA ENCRYPTION The PKZIP utilities offer the ability to protect stored data through encryption. You should use PKZIP's encryption ability in place of any other encryption on files you intend to compress. This encryption ability has been made integral to the function of PKZIP and PKUNZIP to prevent the encryption from interfering with PKZIP's ability to compress. If you feel the need to encrypt your data to protect it, and are intending to compress the data as well, you should then use the encryption of PKZIP. Using the encryption capability of a spreadsheet or database program will prevent PKZIP from compressing the data efficiently. Encryption is enabled in PKZIP by use of the -s option. The encryption key, sometimes referred to as a "password", follows directly after the -s C:\>pkzip test.zip -ssecret d:\payroll\*.dbf Above, all the "dbf" files from the payroll directory have been compressed into a .ZIP file called "test.zip". During the compression they are also being encrypted based upon the key of "secret". The encryption scheme used by PKZIP is complex and robust. The encryption key is used to generate a number of binary encryption keys which are in turn used to determine how the compressed data is altered. Neither the original key or the derived keys are stored with the .ZIP file, nor are they retained anywhere else for that matter. This means you must remember the encryption key. IF YOU LOSE THE ORIGINAL ENCRYPTION KEY YOU WILL NEVER BE ABLE TO EXTRACT THE FILE(S). It is also not possible to derive the original keys by examining the compressed data, or by analysis of original data versus encrypted data. This means that if you loose the key, there is no way to find it. PKWARE Inc. has no special means or technology for deriving the key or extracting the data without the key. Also note that a minute change in the key completely alters the encryption scheme. This means that the key must be exact. Any change in spelling, capitalization or punctuation causes a key to be completely different. Be certain that you know what the encryption key is and will not lose, forget, or mistype it. 68 Introduction PKZIP 2 DO NOT TRUST YOUR MEMORY ALONE. WRITE IT DOWN. Capitalization is also important. "Secret", "secret" and "SECRET" are all completely different encryption keys. You should realize that a person who knows you could attempt to extract a file you have encrypted by using words they think you will use or can remember easily. This would be items such as: Your Spouse's name Your Social Security Number Your Address Your Dog's name Etc... Long Keys It is possible to have extremely long keys, or keys with spaces in them. The length of the encryption key is limited only by the length of a DOS command line. To use a key with spaces in it, you must enclose the password in quotation marks: C:\>pkzip test.zip -s"mary had a little lamb" *.dbf Passwords of this sort may be easy to remember, while proving to be very secure. Remember to use phrases that are not obvious to someone who knows you. Complex Keys If PKZIP or PKUNZIP is specified with only the -s and no encryption key following, the user is prompted for an encryption key. PKWARE Inc. Using Data Encryption 69 C:\>zip test -s *.com PKZIP (R) FAST! Create/Update Utility Version 2 Copr. 1989-1992 PKWARE Inc. All Rights Reserved. PKZIP/h for help PKZIP Reg. U.S. Pat. and Tm. Off. Patent No. 5,051,745 Password ? ****** 80486 CPU detected. XMS version 2.00 detected. Novell Netware version 3.11 detected. Using Super Fast Compression. Creating ZIP: TEST.ZIP Adding: COMMAND.COM Deflating (36%), done. Adding: 4DOS.COM Deflating (34%), done. Asterisks are displayed in place of each character as you enter the encryption key. This feature offers added security in the event somone is watching as you type in the password. This method of entry may be easier or more comfortable to use. This also allows you to enter characters for the encryption key which cannot normally be entered from the keyboard. In order to enter one of these characters, hold down the [ALT] key and type the ASCII value of the character you wish to enter on the number pad. When you release the [ALT] key the character equal to the value typed will be entered into the Password field. The [TAB] key and other keys which could not normally be used since they would interfere with the PKZIP command line can be used when the password is entered in this manner. Passwords entered in this manner are limited to a maximum length of 64 characters. Multiple Keys Passwords can be used not only when creating a new .ZIP file but also when files are being added to an already existing .ZIP file. Let's assume you have a .ZIP file called "keyfun.zip" and it contains two files: june91.wk1 june91.wp We'll also say that neither of these files are encrypted. Now let's add another file to this .ZIP file, and encrypt it while doing so: C:\>pkzip keyfun.zip -sPiZzA sensitiv.txt This will add the file "sensitiv.txt" with a encryption key of "PiZzA". 70 Using Data Encryption PKZIP 2 Now add another file to the same .ZIP file with a different key: C:\>pkzip keyfun.zip -sDukeNUKE diary.txt At this point you have four files in "keyfun.zip". Two are not encrypted at all, and two are, but with different keys. A view of the file would appear like this: C:\>pkunzip -v keyfun PKUNZIP (R) FAST! Extract Utility Version 2 Copr. 1989-1992 PKWARE Inc. All Rights Reserved. PKUNZIP/h for help PKUNZIP Reg. U.S. Pat. and Tm. Off. 80486 CPU detected. EMS version 4.00 detected. XMS version 3.00 detected. Searching ZIP: KEYFUN.ZIP Length Method Size Ratio Date Time CRC-32 Attr Name ----- ------- ----- --- -------- ----- -------- ---- ------------ 11664 Deflate 6937 41% 01-30-92 11:57 183b5606 --w- JUNE91.WK1 76812 Deflate 23404 70% 01-30-92 12:03 971fea04 --w- JUNE91.WP 5327 Deflate 2082 61% 10-14-91 11:25 924efc72 --w-* SENSITIV.TXT 3664 Deflate 1654 55% 04-04-91 10:32 c8d5c9cf --w-* DIARY.TXT ----- ----- --- ------------ 97467 34077 66% 4 Notice the * next to the Attribute column above. This indicates that a file is encrypted. Now, if you try to extract the file with no decryption key present you will only be able to extract the two files that are not encrypted: PKUNZIP (R) FAST! Extract Utility Version 2 Copr. 1989-1992 PKWARE Inc. All Rights Reserved. PKUNZIP/h for help PKUNZIP Reg. U.S. Pat. and Tm. Off. 80486 CPU detected. EMS version 4.00 detected. XMS version 3.00 detected. Searching ZIP: KEYFUN.ZIP Inflating: JUNE91.WK1 Inflating: JUNE91.WP PKUNZIP: (W12) Warning! Skipping encrypted file: SENSITIV.TXT PKUNZIP: (W12) Warning! Skipping encrypted file: DIARY.TXT Extracting the file with a decryption key will extract any file that the key is valid for, but an error will be reported on any files with a different key. PKWARE Inc. Using Data Encryption 71 C:\>pkunzip keyfun -sPiZzA -o PKUNZIP (R) FAST! Extract Utility Version 2 Copr. 1989-1992 PKWARE Inc. All Rights Reserved. PKUNZIP/h for help PKUNZIP Reg. U.S. Pat. and Tm. Off. 80486 CPU detected. EMS version 4.00 detected. XMS version 3.00 detected. Searching ZIP: KEYFUN.ZIP Inflating: JUNE91.WK1 Inflating: JUNE91.WP Inflating: SENSITIV.TXT PKUNZIP: (W14) Warning! Incorrect password for file: DIARY.TXT How secure is PKZIP encryption? There are many factors to consider when using PKZIP encryption. There are also several levels and implications to consider. The first level of security is physical. Who has access to the .ZIP file? You need to be aware of who might be able to get to sensitive data located on your machine, on your floppies, or on your personal network drive. The potential hazards of using data encryption cannot be stressed strongly enough. Make certain that you will be able to recall what was used for the encryption key. Also be certain that all people who need to be able to access this data have agreed upon how the encryption will be performed. It does happen that people encrypt very important data, and then go on "vacation" to a distant land, or meet their untimely demise, without first passing on the encryption key. In these sorts of eventualities the data is gone. So consider well before you encrypt or allow the encryption of information. If this information is so vital to you that you feel you must encrypt it, consider what the loss of it would mean to you. All forms of encryption, including the one used by PKZIP, are open to "brute force" attacks. This form of attack is simply the trying of many passwords until you find one that works. In order to help you protect your data from this sort of attack we present figures on how long a brute force attack, using a computer, would take. The scenario we present here assumes that your encrypted .ZIP file is being assaulted by a program which is designed specifically to do this. An encryption key may contain any valid ASCII character, not just A-Z in upper and lower case and punctuation marks. However, most people will just use the latter. The following table is indexed by the complexity of the password. Across the top is the range of 72 Using Data Encryption PKZIP 2 characters used. The simplest assumes that only lower case letters from a to z were used. The next column assumes that all printable characters were used (a to z in upper and lower case, punctuation, brackets, etc.). The last column assumes a password containing the complete range of ASCII characters. The vertical index is the length of the password used. This impacts the strength of the password greatly. Think of it as a combination lock. A combination lock with only two numbers would be much easier to break than one with three or four numbers. We recommend that if you need a truly secure encrypted file, use an encryption key of at least six characters. The last assumption made is about the speed of the attacking program. For the purposes of this table, we assume that 10,000 possible keys are being attempted per second. Password "Hacking" Time Key 26 characters 96 characters 256 characters Length (a-z) (a-z,A-Z,etc) (All ASCII) 3 2 seconds 1 minute 27 minutes 4 1 minute 2.35 hours 4 days 5 19 minutes 9 days 3 years 6 8.6 hours 2 years 891 years 7 9 days 238 years 2283 centuries 8 241 days 228 centuries 584,546 cent. 9 17 years 21,945 cent. 149,643,989 cent. 10 447 years 2,106,744 38,308,861,211 centuries centuries Choose the complexity that you feel meets your needs, but keep in mind all that has been mentioned about losing and forgetting passwords. These figures represent the state of technology today. PKWARE Inc. cannot predict future technologies which may allow faster attempts at decryption of a .ZIP file. Note that the above figures do not include the time needed to actually try all valid passwords. This would increase the time by several hundred percent, dependent upon the length of the file. PKWARE Inc. Using Data Encryption 73 PKZIP CONFIGURATION Configuring PKZIP with PKCFG.EXE and the PKZIP.CFG file PKZIP can have several of its features configured semi-permanently. These configuration changes are made through a configuration file called PKZIP.CFG. This configuration file can be located in one of three places: 1) The current directory 2) A directory specified with the environment variable PKZIP.CFG 3) The directory in which PKZIP.EXE is located PKZIP will search for the configuration in each location in the order listed above. This means that you may have a default configuration file that is easily overridden by using a configuration file in either of the first two locations. ** Any option that is set in the configuration file may be overridden from the command line. The configuration file may either be created manually with a text editor, or through the use of the included utility, PKCFG.EXE 74 PKZIP Configuration PKZIP 2 PKCFG The PKCFG program will look for an existing configuration file in the same locations and order that PKZIP would. If the PKCFG program finds an existing configuration file it will load it. The existing configuration values will be shown in place of the defaults. A list of options will be displayed on the screen. A highlighted cursor indicates the option you can modify. Use the [UP Arrow] and [DOWN Arrow] keys to move up and down through the list. Options may be toggled with either the the [LEFT Arrow] and [RIGHT Arrow] keys or by pressing the [ENTER] key. Some options have complex possibilities. When one of these is modified, a small dialog box with options to be changed will be displayed. To reset all displayed options to the default values press [F5]. In order to save the options you have selected to the configuration file, press [F1]. Press [F10] to exit the program. If you exit without saving changes, you will be prompted. PKZIP.CFG The options available in a configuration file are shown in the table on the next page. The "Default Value" column shows the default value of each option. The default is the value that would be assumed if the option were not specified in the configuration file. ** NOTE: PKCFG is included with the registered version of PKZIP, and is not included with the shareware version. PKWARE Inc. PKZIP Configuration 75 Configuration File Options Option Alternate Value Default Value ANSI enabled disabled INCLUDE hidden/system (none) MASK readonly/hidden/system (none) RECURSE on off PATHS all, recurse (none) ZIPDATE keep, latest current COMPRESS maximal, fast, speed normal LISTCHAR (any) @ OPTIONCHAR (any) - VIEW (Type) brief long VIEW (reverse sort) reverse (none) VIEW (sort order) size, date, name, ratio natural comments, extension EMS disable enable XMS disable enable NET disable enable DPMI disable enable 386 disable enable Options separated by a slash / character may be used alone or in combination with others. Options separated by a comma may not be combined with the exception of VIEW. With VIEW one option from each of the three categories may be used in combination. A configuration file consists of ASCII text. This file may be created with any text editor that can create a plain ASCII or DOS Text' file. Examples Following are several example configuration files with explanations of what they would accomplish. 76 PKZIP Configuration PKZIP 2 ;Example PKZIP.CFG #1 ;Config files may contain comments if they are prefaced by a ;semi-colon PATHS=recurse VIEW=brief/reverse/size COMPRESS=speed The first example configuration file does the following: -> Turns on the storage of paths that are found during recursion. This would make all commands using the -r option behave as though the -rp option was used. -> Any view (-v) command used without options will be shown in brief format, sorted in reverse order of the file size. -> All commands that do not specify the compression type will use the fastest (-es) method of compression. ;Example PKZIP.CFG #2 INCLUDE=hidden/system RECURSE=on PATHS=all VIEW=extension EMS=off COMPRESS=maximal The second example configuration file does the following: -> Causes PKZIP to archive hidden and system files by default. Hidden and system files are normally skipped by PKZIP and not visible in directory listings. -> Any command will behave as though the -r option has been used -> All paths will be stored, both those specified on the command line and those found through recursion(-r). -> Any view (-v) command used without options will be shown sorted in order of file extension. Note that the view would be long, the default value. If the view command were specified with -vb using the configuration file, the view would be brief, but the sort order specified in the configuration file would still be in effect unless overridden with a command line option. -> EMS usage is disabled. -> All commands that do not specify the compression type would use the highest compression possible (-ex). ** NOTE: The options for zipping to multiple floppy disks are documented in the ADDENDUM.DOC file. PKWARE Inc. PKZIP Configuration 77-81 Application for Authenticity Verification In order to receive a serial number to use with the PUTAV program, please fill out and return this form to PKWARE. When the enclosed information is verified, you will receive your serial number from PKWARE. Please note that this does not constitute a license from PKWARE to distribute the executable programs PKZIP, PKUNZIP or self-extracting PKSFX files for commercial purposes. See LICENSE.DOC or contact PKWARE Inc. for more information about distribution licenses for the software. Please Read the entire chapter on AV before filling this out. 1) My full registration for PKZIP/PKUNZIP/PKSFX ($47+3.50 S&H) is enclosed (circle one) YES NO If yes, skip to step 3. 2) I have previously fully registered PKZIP/PKUNZIP/PKSFX in the past. The name under which the software is registered is: Name:_________________________________________________________________ Company:______________________________________________________________ Title:_____________________________________ Date:_____________________ Address:______________________________________________________________ City:______________________________________ State:____________________ Zip Code: ________________________ Telephone #:(______)__________________ Fax #:(_____)__________________ Approximate date of registration/purchase:____________________________ 3) Please list the name that you want displayed by PKUNZIP when an authentic file created by you is verified (51 characters max). Since the purpose of the Authenticity Verification feature is to help provide detection of tampered, hacked or virus infected files, we ask that you provide only your company's name or individual's name for the AV string. The "AVEXTRA.TXT" feature was designed to additionally display telephone numbers, addresses, BBS numbers, BBS nodes or parameter, CompuServe addresses and similar information. PKZIP 2 F.A.Q. (Frequently Asked Questions) This section lists some common questions about PKZIP and related subjects. We hope you will find this information helpful. Why do I get the message "Bad Command or Filename"? =================================================== If you see this message, DOS is telling you it can't find the program you are referring to. This can happen because you are either not spelling the name of the program properly, or you didn't put a space between the program name and its options, or the program is not in your path. Please see the Installation section and your DOS manual for more information. Why is this program so complicated? =================================== PKZIP initially was used to compress files that would be sent by modem. The people using PKZIP were mostly hobbyists with a fair amount of computer experience. PKZIP was designed to be powerful and fast. Someone who is familiar with the workings of PKZIP can be very efficient with the command line. The command line interface is vital for automated or batch use of PKZIP. Although PKZIP may seem very complex at first, it is easy to master if you take one step at a time. Start simply by following the Tutorial, then experiment and build on that knowledge as you need more features. Users who prefer using Graphical User Interfaces may wish to consider the "PKZMENU" product from PKWARE. This easy to use menu-driven program offers PKZIP compatibility. It features drop-down menus and a simple point and shoot interface. 82 F.A.Q. PKZIP 2 Why didn't the files I Zipped get any smaller? ============================================== On occasion, you may find that the files you add to a .ZIP file do not compress. These files will be "stored". This will happen when a file is either already compressed or encrypted. In both cases the redundancy of the file will be gone, making compression difficult if not impossible. If the file is encrypted you should first save it without encryption, and then use the encryption feature of PKZIP. You will often find that files distributed with commercial applications are already compressed. A common example would be the graphic data files that come with games like Leisure Suit Larry or Ultima. I zipped up a bunch of files but now I have LESS disk space!? ============================================================= When PKZIP compresses files, it makes a copy of the original file. The original file(s) are still present. If you wish to recover space that was taken up by the original file(s), you must either delete them yourself, or instruct PKZIP to delete the file(s) with the -m option. What's the difference between -u and -f? ======================================== The update and freshen options are very similar. This may be confusing at first, but the difference between them is fairly easy to understand. The freshen option will tell PKZIP to archive any files which match those already in the .ZIP file. These files will only be re-compressed if they are newer than the files already in the .ZIP file. Each file is evaluated individually. The update option will archive all files, with one distinction. If the -u is not used, all files specified will be compressed and added to the .ZIP file, even if they already exist in the .ZIP file. By using the -u option, you instruct PKZIP to compare what is already in the .ZIP file against what it was asked to compress. If a file is already present in the .ZIP file and is also in the source directory, PKZIP will compress a file only if it is newer than the copy of the file within the .ZIP file. If a file in the source directory is not already present in the target .ZIP file, PKZIP will add it to the .ZIP file. Is PKZIP compression "lossy" or "lossless"? =========================================== PKZIP uses a "lossless" compression scheme. This means that 100% of the original data is preserved and re-created. There is ...(continued) PKWARE Inc. F.A.Q 83 absolutely no difference between the data that you put in and the data which you get back out. There are other compression methods that are known as "lossy". The idea behind these compression methods is that if you throw away some of the data, it becomes less complex and therefore can be compressed more. This type of compression is only useful for data that need not be precise. This applies to some applications that use pictures and sound. How do I zip up subdirectories? =============================== In order to ZIP up subdirectories you must both recurse subdirectories and preserve path names. This is done with the -r and -p options in combination. The options may be placed together as -rp. When a .ZIP file is created with paths stored, these paths will be visible in a view of the file (-v). To re-create these subdirectories, or to place files into their original subdirectories, the -d option must be used with PKUNZIP. Please see the tutorial for more information. I zipped up some subdirectories, but I can't get them to come back? =================================================================== Did you remember to use the -p option in addition to the -r option? You may have stored files that are in subdirectories but not preserved the path names as part of the .ZIP file. To check if there are paths in the .ZIP file, do a view of the file: pkunzip file.zip -v If you do not see paths as part of the file names within the .ZIP file, then paths were not stored and cannot be recovered. If you do see paths all you need to do is use the -d (directory creation) option when you extract the files. How do I unzip a single file that is in a subdirectory in the .ZIP file? ======================================================================== Extracting a particular file from a .ZIP file is simple. You type PKUNZIP with the name of the .ZIP file and the name of the particular file you want. With a .ZIP file that contains paths the procedure is basically the same. Let's assume a "test" .ZIP file with these files in it: 84 F.A.Q. PKZIP 2 file1.txt apple\file2.txt apple\banana\file3.txt To extract only "file2.txt" from this .ZIP file you must specify the complete name. This would include the path. pkunzip test.zip apple\file2.txt Note there is no leading slash. This is how PKUNZIP differentiates between the files you are extracting with paths, and the target directory. "file2.txt" would be extracted to the current directory. If you wanted to extract it with its subdirectory simply include the -d option on the command line. How do I unzip a directory without also extracting its subdirectories? ====================================================================== Using the above "test" .ZIP file we could extract the entire contents of the apple subdirectory easily: pkunzip test.zip apple\*.* -d If we did it as shown above we would not only extract all the files in the "apple" subdirectory, but also the "banana" subdirectory below it and any files it contains. To extract only the "apple" subdirectories contents, and nothing else, we must exclude those directories we do not wish to extract: pkunzip test.zip apple\*.* -d -xapple\banana\*.* If the "apple" subdirectory had multiple subdirectories off it you would need to exclude each one individually on the command line. What is an AV? ============== AV is short for "Authenticity Verification". AV is a process whereby a copy of PKZIP has unique codes and information contained in it identifying the owner of the copy of PKZIP. This information is then encoded into a .ZIP file when it is created. When the file is extracted by PKUNZIP, this information is checked. If the .ZIP file has been modified by a copy of PKZIP other than the one which initially created it, PKUNZIP will report that the file has been tampered with. The advantage of this feature is to offer a layer of protection between the creator of an archive and the recipient. The recipient knows that the file received is the file that was sent, as well as being able to identify the creator if it is not known. PKWARE Inc. F.A.Q 85 Where is my AV number? ====================== As a licensed user of PKZIP you are entitled to one AV number. In order to receive an AV number, you must apply for it. If you have a need to create AV encoded .ZIP files, fill out the form contained in the file "authveri.frm" found in your PKZIP archive. Mail or fax this form to PKWARE. Please allow up to four weeks for processing time, plus mail delays. The codes needed to install your AV number will be returned to you via US Mail. AV codes will not be returned by FAX, telephone, or any means other than US Mail. Please note that although the initial AV code is included with your purchase of a PKZIP license, changes or re-issues of an AV code may be at an additional cost. ** You must apply for your AV number. The serial number on the disk PKWARE sent to you has no relation to the AV number. The AV number is based solely on the information you provide for your AV identification string on the AV application form. I forgot my password, what do I do? =================================== 1. Read the chapter "Using Data Encryption" 2. Try to remember the password. 3. Try passwords that are "close" to what you think it was. 4. Try mixed upper and lower case versions of your password. ** There really is nothing that can be done if you lose or forget your password. Don't forget or lose your passwords! PKWARE has no special means for "getting around" the encryption and may not be able to assist in the recovery of an encrypted file. YOU SHOULD KEEP A WRITTEN COPY OF YOUR PASSWORD(S) IN A SECURE PLACE. DO NOT TRUST YOUR MEMORY ALONE. What does "Don't Know How to Handle" mean? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ There are many different methods of compression. In the history of PKZIP alone there have been seven different methods to date. The .ZIP file format was designed so that additional methods of compression can be added as they are developed. In this way the .ZIP file format will never need to be abandoned. If you attempt to extract a .ZIP file that was created with version 2.0 or higher with a lower version of PKUNZIP you will receive the message "Don't Know How to Handle" for every file compressed with a more advanced algorithm. 86 F.A.Q. PKZIP 2 If you attempt to extract a .ZIP file created with a version of PKZIP that includes a method PKZIP 2.0 does not use, you will receive a warning that will tell you what version of PKUNZIP you need. What is a CRC and why did it fail? ================================== CRC is short for Cyclic Redundancy Check. A CRC is a value computed to represent the data content of a file. The CRC is computed by PKZIP when it archives the file, and computed a second time when the file is extracted. If the second CRC does not match the first CRC, then a change has occurred in the data. The cause of a CRC failure can vary. Here are some possible causes for CRC failures. I. Failure on the machine that created the .ZIP file. A. Failure immediately after creation. 1. On a 386/486 or higher there may be an obsolete or poorly written TSR or device driver interfering with PK(UN)ZIP. Use the -3 option with both PKZIP and PKUNZIP to see if this is the problem. Consult the Trouble Shooting section for more information. 2. "Clean boot" your machine. Either re-name your autoexec.bat and config.sys files so that they are not loaded, or insert a DOS boot floppy and reset your machine. Attempt extraction and compression of the file again. 3. The floppy/hard disk controller may be failing. See if there is any difference in behavior if you compress to/from the hard disk or floppy drive. 4. Failing diskette media. 5. A bad memory chip. 6. Your computer is suffering from the "cache flaw". This is caused by problems with the external CPU cache on your computer's motherboard. See the Trouble Shooting section, -( option. B. Failure after a period of time. PKWARE Inc. F.A.Q 87 1. Any the above causes. 2. The file has been damaged during the time it was stored on the hard disk. The can be caused by cross-linking or "lost" clusters. Some faulty disk-defragmenters and deletion recovery programs may cause this. 3. Deleting and then undeleting a .ZIP file. "Undelete" programs are by no means flawless. An undeleted or recovered file is very likely to fail, as most disk recovery programs are imperfect at best. II. Failure on a network server. A. Some network server software does not run properly on 386/486 machines. If PKZIP is used on the server CPU running this faulty network software, it will be interfered with by the network software. III.Failure after transfer of a file by modem. A. Any of the problems cited in section I may be the cause of a failure. B. There was an error in the transfer of the file. Use an "error- correcting" protocol such as ZMODEM to avoid these types of problems. C. The file was transferred with "Kermit". If you use Kermit you must set it to Binary mode. PKZIP files are binary. D. One of the computers or modems involved in the transfer has a problem. IV. Failure after transfer by disk. A. Any of the problems cited in section I may be the cause of a failure. B. Faulty disk controller/floppy drive. C. Faulty floppy disk. 1. The drive alignment between the two computers may be off enough to cause a data error. Normally you will get a "disk failure" message from DOS. 2. The disk was damaged by a magnetic or heat source. 3. The disk media is worn out or defective. 88 F.A.Q. PKZIP 2 What do "Bad Table" and "Inconsistent Local Header" mean? ========================================================= If you receive either or both of the above messages, the .ZIP file is damaged or has been tampered with. These messages may also be accompanied by a CRC failure. All of the physical causes listed for CRC failures apply as possible causes of these errors. How can I make PKZIP run faster? ================================ PKZIP defaults to a compression method that is average in both compression amount and speed. If you want to get the most speed out of PKZIP there are several things you can do: 1. Specify a faster compression method with the -ef or -es option. 2. Use a large RAM disk as your temporary files drive. PKTMP=(RAM disk drive letter) 3. If you are creating the .ZIP file on a network drive, set your PKTMP equal to a drive on the same server. 4. Make as much conventional memory available as possible. How many files can be in a .ZIP file? ===================================== A .ZIP file may contain a maximum of 16,383 file entries under MS-DOS. Due to memory limitations this limit cannot actually be realized. Under the current memory scheme of DOS the largest number of files which may be in a .ZIP file is approximately 9000 files. The maximum number of files you can handle with a .ZIP file operation can be calculated by the following formulas: With No EMS or UMB's available: (Free Conventional RAM - 375k) / 64 bytes = Maximum # of Files With EMS available: (Free Conventional RAM - 85k) / 64 bytes = Maximum # of Files The "Super Fast" algorithm uses 32k less RAM than the other methods in PKZIP 2. You will be able to compress an additional 500 files when using the "Super Fast" method. Note that the value of 64 bytes per file is approximate and may vary. PKWARE Inc. F.A.Q 89 When a .ZIP file is being updated, you must not only take into account the files being added, but allow 70 bytes per file in the original .ZIP file. Can I send a .ZIP file to a different type of computer? ======================================================= As of the publication of this manual, PKWARE currently supports PKZIP on MS-DOS and OS/2 platforms, PKWARE intends to support additional platforms and will announce these as they become available. Because PKWARE has dedicated the .ZIP file format to the public domain, it is possible for other people to write programs which can read .ZIP files. NOTE THAT THE PKZIP, PKUNZIP, PKSFX PROGRAMS AND THEIR ASSOCIATED SOURCE CODE AND SUPPORT PROGRAMS ARE THE EXCLUSIVE PROPERTY OF PKWARE INC. AND ARE NOT PUBLIC DOMAIN SOFTWARE PROGRAMS. We are currently aware of PKUNZIP compatible programs for a number of different platforms. A .ZIP file can be transferred to any platform for which you can find a compatible extraction program. Extraction and Compression programs not developed by PKWARE may not be completely compatible with the .ZIP file standard. Contact PKWARE for a list of platforms for which PKZIP and PKZIP compatible software is available. What is the difference between -b and pktmp? ============================================ PKZIP creates two different types of temporary files, and allows you to specify the location for these two types separately. The two situations where PKZIP creates temp files are: * When a file is being added to a .ZIP file. * When a .ZIP file is being modified. It is advantageous to have the temporary files for the first instance written on the fastest drive on your system, unless you are creating a .ZIP file on a Novell Network. The location for the temporary .ZIP file created when a .ZIP file is modified is normally the same as the location of the original file. In some cases you may not have enough room on that drive. When this occurs use the -b option to relocate the temp file. 90 F.A.Q. PKZIP 2 HOW DOES PKZIP WORK? This section has been omitted from the shareware manual to reduce the download transmission time. This section is contained in the registered version. PKWARE Inc. How Does PKZIP Work? 91-100 TROUBLE SHOOTING This section offers some hints to aid you in locating and solving problems. Part of this section includes PKZIP and PKUNZIP command line and configuration file options that apply only to locating problems. Problem Solution/Reason See Also "Error in .ZIP If you are just creating a .ZIP file for Use Tutorial use PKZIPFIX" the first time and receive this error, When compressing your command line is wrong. "Warning:Bad PKZIP or PKUNZIP is not in your path, or Use Tutorial Command or File you have mis-typed the command. Name" CRC Failure Get a new copy of the file. F.A.Q. Page XX File does not File is already compressed or is encrypted F.A.Q. Page XX compress Files are still PKZIP copies files by default, to move PKZIP -m there after (delete) them, use the -m option. page XX being Zipped Disk Full error Either the .ZIP file you are creating is PKZIP Backup too large to fit on the disk, or you do Guide not have enough room to update an existing .ZIP file. Create a multi-volume .ZIP PKZIP -b page file or use an alternate temporary drive. XX Can't find PKSFX There is no program called PKSFX. PKSFX PKSFX/ZIP2EXE refers to a "Self-extracting .ZIP file". page XX That is a .ZIP file that has been made into an executable file with the program ZIP2EXE.EXE I have lots of Although PKZIP uses XMS/EMS memory, there "Using List memory, but I'm are limitations that will occure due to files" getting an your base (conventional) memory being page XX "Out of memory" limited. Try to clear up as much memory as error? possible. If you are attempting to compress more than 8,000 files at once you will usually receive this error. Can't re-create Make certain you are using the -d option. F.A.Q. XX subdirectories If you are, and you still have this or return files problem, subdirectories may not have been to their stored in the .ZIP file. original dirs PKWARE Inc. Trouble Shooting 101 _____________________________________ -3 Disable 32-bit instruction usage This option is available for users with 80386/80486 type computers. It is used to turn OFF the added 32-bit instructions and register usage. When 32- bit instructions are available, PKZIP will utilize them to allow the program to function even faster. However, if you are running a different program that may conflict with the use of 32-bit instructions, you can disable them by using this command. 32-bit instructions will be disabled only for the current PKZIP operation. They will then be enabled immediately after the command operation is completed. You can also disable 32-bit instructions all the time by using the PKNO386 environment variable. To set the environment variable, type PKNO386=ON. If the string PKNO386 is present in the environment, then PKZIP (and PKUNZIP) will not use 32-bit instructions or registers. To enable 32-bit instructions after they have been disabled, type: SET PKNO386=[ENTER]. If you have persistent problems with another piece of software interfering with PKZIP, and you cannot upgrade or discard that software, you may turn off 32-bit instructions in the configuration file. The pkzip.cfg option line is: 386=DISABLE Note that the configuration file is read only by PKZIP. PKUNZIP can only be set permanently by use of the environment variable. You may override the configuration file or environment variable on PKZIP by using a -3+ option. This will cause PKZIP to use 32-bit instructions regardless of the environment variable being set, or an entry in the configuration file. _____________________________________ -^ Echo the command line This option is used to display the PKZIP command that you entered on the console. It is useful when you are debugging an application or batch file which calls PKZIP. The file specifications that you entered will be echoed on the console along with the command output. In this example, technical information about all of the *.doc files included in the DOCS.ZIP file will be displayed. The information will be sorted by date, and the command line will be redisplayed on the screen above the output. E:\>pkzip docs.zip -vd -^ *.doc 102 Trouble Shooting PKZIP 2 _____________________________________ -+ Disable EMS usage -- Disable XMS/UMB usage To use EMS/XMS/UMB features PKZIP and PKUNZIP require: -> XMS version 2.0 or greater -> EMS LIM 4.0 or greater An XMS driver is required in order to have UMB and HMA support available. PKZIP/PKUNZIP will use up to 256K of EMS memory. If you are in a situation where you need to preserve EMS memory for other use, such as when running a multi-node BBS system, you may wish to disable this feature. A conflict with your XMS/EMS driver can be eliminated by disabling EMS usage. Problems relating to EMS usage would manifest themselves as: -> Unexplainable machine lock-up. -> Receiving "Warning:Bad Table" and "File fails CRC check" for every file in a .ZIP file being extracted. EMS or XMS usage can be turned off in the configuration file with the pkzip.cfg option: EMS=DISABLE XMS=DISABLE If EMS has been disabled in the configuration file, you may force usage back on with the -++ option. If XMS has been disabled in the configuration file, you may force usage back on with the --+ option. _____________________________________ -~ Disable Network detection When this option is specified, Network specific operations are disabled. If you feel you are experiencing problems due to a conflict with the Network specific operations use this option. If the problem is persistent enough that you wish to disable Network operations all the time, you may do so with a configuration file command: PKWARE Inc. Trouble Shooting 103 NET=DISABLE If Network support has been disabled in the configuration file, you may force usage back on with the -~+ option. _____________________________________ -) Disable DPMI Support PKZIP and PKUNZIP require 32-BIT DPMI 0.90 or greater. DPMI support uses an extra 6.5K of conventional or UMB memory. If you are extremely tight on memory you may wish to disable DPMI support. If a failure occurs in the DPMI Support it can be disabled with this option. DPMI=DISABLE If DPMI has been disabled in the configuration file, you may force usage back on with the -)+ option. _____________________________________ -( Use "Slow" MemCopy Some computers suffer from a flaw that causes them to have errors when performing simple MemCopy functions. This problem is generally caused the the manufacturer's use of inferior grades or speeds of RAM chips for the external CPU memory cache on the motherboard. This behavior will most commonly be seen on on relatively fast machines (486/25 and higher). This feature is only available on 486 (or higher) CPU's. This problem will most frequently exhibit itself in the form of unexplainable CRC failures. Use of this switch causes PKZIP to manipulate memory in a way that is less susceptible to this problem. Note that the added overhead in this process may slow down PKZIP by 20% to 40%. SLOWMEMCOPY=ON If normal MemCopy has been disabled in the configuration file, you may force usage back on with the -(+ option. PKUNZIP has been designed to be mostly immune to this problem. Please note that the external CPU cache has no relation to printer or disk caches. 104 Trouble Shooting PKZIP 2 PKWARE CUSTOMER SUPPORT FORM Please photocopy and complete this form as completely as possible before contacting our customer support. By providing this information you help us to provide assistance in an efficient and exact manner. It is recommended that you first fax this form, then call PKWARE customer support. Indicate on this form that you will be calling. If sending your problem by fax only, please specify how you would like to be contacted. **Please Print or Type, use "fine" fax mode if possible.** PKWARE Inc. 9025 N. Deerwood Dr. Brown Deer, WI 53223 (414)354-8699 (414)354-8559 FAX (414)354-8670 BBS Problem Description Be sure to include the following. Use as many additional sheets as necessary -> What you are trying to do -> What do you expect to happen -> What did happen and why it is a problem -> Copies of CONFIG.SYS, AUTOEXEC.BAT and any error messages PKWARE Inc. Trouble Shooting 105-106 ERROR MESSAGES The following error messages may appear when using PKZIP. When the word "WARNING" appears in the message, program execution will continue. Otherwise the program will abort to DOS. Each warning message is prefaced with an error code. This error code consists of the letter 'E' or 'W' and a number. The letter corresponds to whether the error indicates a "Warning" or "Error" condition. The number corresponds to the DOS error level that would be returned. Errors are listed in order of return code or warning level. A brief explanation of each message follows. PKZIP Error Messages ~~~~~~~~~~~~~~~~~~~~ PKZIP: (E01) Can't create: XXXXX. The named file could not be created. Either the target directory is full or the file already exists and is read-only or locked by another application. On a Network you may receive this message if you do not have file creation rights in the directory. PKZIP: (E[2,3]) XXXXX.ZIP - error in ZIP, use PKZIPFIX. The named .ZIP file has a corrupted file index. Use PKZIPFIX to attempt reconstruction of the .ZIP file. In some cases the damage to the .ZIP file may be very extensive. If the file is too badly damaged PKZIPFIX will not be able to recover the file. NOTE: Many novice users receive this message because of improper command line syntax. If you specify a command line with only one file name following PKZIP and it is NOT a .ZIP file you will receive this message. PKZIP assumes that the file is a .ZIP file because you specified it as the first file name on the command line, and it attempts to place all files from the current directory into that file. Upon examination of the file it will not find any .ZIP file information (due to its not being a .ZIP file) and will then report this message. Please see the tutorial for further information. PKZIP: (E[4-11]) Insufficient memory. Insufficient memory is available to process the .ZIP file. Try making more memory available to PKZIP. If this does not rectify the problem then the .ZIP file might be corrupted and PKZIPFIX should be used to fix the .ZIP file. If you are creating a new .ZIP file and receive this PKWARE Inc. Error Messages 107 message, it is due to an attempt to ZIP a large number of files. Reduce the scope of your command and try again. If you are using a LIST file in your PKZIP command you may be receiving this error because the LIST file is too large. See "List Files" for more information. PKZIP: (E12) No file(s) found. No matching files were found to list using the View option. This means the filespec you specified on the command line has no match within the .ZIP file. PKZIP: (E12) No files specified for deletion! The -d (Delete) option was specified but no filenames were given to delete. This option does NOT default to *.* if no filenames are given. See the -d option on page 32 for further information. PKZIP: (E12) Nothing to do! No matching files, or files with the specified attributes, or files after the specified date etc., were found to compress. Often you will receive this message because the command line you entered is not correct. Check the exact name of the file you are specifying as well as the path, if any. PKZIP: (E13) Can't find: XXXXX.ZIP. The named .ZIP file could not be found. Either it does not exist or is not in the specified directory. PKZIP: (E14) Insufficient disk space for ZIP comment. There is insufficient disk space to hold the comment as entered. You will need to move the .ZIP file somewhere with more free space, or clear up more storage space in its current location. Note that a temporary copy of the .ZIP file is not created. The .ZIP file comment is appended directly to the existing .ZIP file. PKZIP: (E14) Insufficient disk space for updated file: XXXXX.ZIP. The -b option was used, and there is not enough space on the original drive containing the .ZIP file to receive the updated .ZIP file. (The update operation has added additional or larger files to the .ZIP file, causing it to grow larger than the original). Try to free up some space on the drive containing the .ZIP file, and retry the operation. Also, make sure that the drive specified with the -b option is different than the drive containing the .ZIP file. PKZIP: (E14) Disk full, file: XXXXX. A disk full error occurred while writing to the specified file. Try freeing up some disk space on the target drive. Also, see the -b option and the PKTMP environment variable. 108 Error Messages PKZIP 2 PKZIP: (E15) Can't open XXXXX.ZIP for write access! The named .ZIP file is read-only or locked by another application and can not be modified. This may also occur on a Network drive if you do not have adequate access to that file to allow you to modify it. PKZIP: (E17) Too many files! An attempt was made to compress more than 16,383 files at one time. This message could be received if you update a .ZIP file which has a corrupted central end directory. PKZIP: (E24) Fatal EMS error: XXXXXXXX PKZIP: (E25) Fatal XMS error: XXXXXXXX An error has occured in the interaction between PKZIP and your EMS or XMS handler. You may have a faulty EMS/XMS driver. To be able to use PKZIP in spite of this problem, disable EMS/XMS usage with either the - + or - - option or the configuration file options EMS=DISABLE and XMS=DISABLE. Please contact PKWARE Technical Support with a description of the situation in which the error occured, the brand and version of your EMS driver, and the HEX code printed at the end of this error message. PKZIP: (E26) Warning! DOS 3.0 or later needed to span disks DOS versions below 3.0 do not support the features needed by PKZIP in order to span a .ZIP file across multiple disks. You will need to upgrade to a newer version of DOS in order to make use of this feature. PKZIP: (E27) Warning! Non-removable or unsupported device .ZIP files can only be spanned to a device which supports multiple storage units (i.e. multiple floppy disks can be inserted in series into a floppy drive). The device must also be a standard writable DOS device. .ZIP files may not be spanned onto a device such as a Hard drive which cannot be removed. PKWARE Inc. Error Messages 109 PKZIP Warning Messages ~~~~~~~~~~~~~~~~~~~~~~ PKZIP: (W01) Warning! Can't open XXXXX.CFG When PKZIP runs it looks for a configuration file. The three places that PKZIP will look for it's configuration file are: The current directory, the directory where PKZIP.EXE is located, and the directory pointed to by the environment variable PKZIP.CFG. If the PKZIP.CFG environment variable is set, and PKZIP cannot locat a configuration file in any of the three places it looks, you will receive this error message. PKZIP: (W02) Warning! Can't open XXXXX This error usually occurs on Networks where you either do not have read access to a file or another process/user has the file open in an exclusive mode. If the file is held open by another process you may be able to overcome this problem by using the -= switch. PKZIP will exit with an error level of 18 when this warning is received. PKZIP: (W03) Warning! Can't delete XXXXX. The -m (Move) option was specified to delete files after the .ZIP file was constructed. However, the named file could not be deleted, and is probably read-only. You may also receive this message if the file is on a network drive and you do not have access to delete the file, or it is locked by another application. 110 Error Messages PKZIP 2 PKUNZIP Error Messages ~~~~~~~~~~~~~~~~~~~~~~ PKUNZIP: (E[4-8]) Warning! Insufficient memory. Insufficient memory is available to process the .ZIP file. Try making more memory available to PKUNZIP. If this does not rectify the problem, then the .ZIP file might be corrupted, and PKZIPFIX should be used to fix the .ZIP file. The more files present in a .ZIP file, the more memory it will take to process the file. In some cases the .ZIP file may be too complex. Too many files are contained within the .ZIP file for PKZIP to handle. This may occur if the .ZIP file is created under an operating system other than DOS. PKUNZIP: (E09) Can't open: XXXXX.ZIP. The named .ZIP or list file(s) could not be found. It does not exist, was spelled incorrectly, or is not in the specified directory. PKUNZIP: (E09) Can't find: XXXXX PKUNZIP was unable to locate the specified .ZIP or @list file. The filespec specified was in error or a disk error has occured. PKUNZIP: (E11) No file(s) found. No files were found to extract, test, update or list. The filespec specified on the command line does not match any files present in the .ZIP file, or all files found could not be extracted due to an incorrect password or incompatible compression type. PKUNZIP: (E50) Disk full, file: XXXXX. There is not enough free room on the destination drive/directory for the file being extracted. The program will abort and exit to DOS. PKWARE Inc. Error Messages 111 PKUNZIP Warning Messages ~~~~~~~~~~~~~~~~~~~~~~~~ PKUNZIP: (W[01,02]) Warning! File has bad table The Imploded file being tested or extracted has an error in its encoding. The file is probably corrupt or not a .ZIP file. Files that have been damaged in this way cannot be recovered. PKUNZIP: (W03) Warning! File has bad table The Reduced file being tested or extracted has an error in its encoding. The file is probably corrupt or not a .ZIP file. Files that have been damaged in this way cannot be recovered. PKUNZIP: (W04) Warning! XXXXX.ZIP - error in ZIP, use PKZIPFIX. The named .ZIP file has a corrupted file index. Use PKZIPFIX to reconstruct the .ZIP file. You may also receive this message if you attempt to extract a file which is not a .ZIP file. If the file is less than 22 bytes in length it cannot be a .ZIP file and the "use PKZIPFIX" message will not be shown. PKUNZIP: (W[05-07]) Warning! Insufficient memory Insufficient memory is available to process the .ZIP file. Try making more memory available to PKUNZIP. If this does not rectify the problem, then the .ZIP file might be corrupted, and PKZIPFIX should be used to fix the .ZIP file. The more files present in a .ZIP file, the more memory it will take to process the file. In some cases the .ZIP file may be too complex. Too many files are contained within the .ZIP file for PKZIP to handle. This may occur if the .ZIP file was created under an operating system other than DOS. PKUNZIP: (W08) Warning! Can't open XXXXX.ZIP PKUNZIP: (W09) Warning! Can't open printer device The named file or printer device could not be opened. Either a disk error occurred, or the file is locked by another application. You may receive this error on a network drive if you do not have read access to that file. The printer device may not exist, or may be off-line. PKUNZIP: (W10) Warning! Can't create: XXXXX. PKUNZIP: (W10) Warning! Invalid file name: XXXXX. The named file could not be created. The output directory is invalid because it does not exist, is spelled incorrectly, or is full. You may also receive this message on a Network drive if you do not have file creation rights there or the directory is full. 112 Error Messages PKZIP 2 In the case of an invalid file name error, the name stored in the .ZIP file is invalid. This may indicate a damaged .ZIP file, or one that has been tampered with. PKUNZIP: (W11) Warning! I don't know how to handle: XXXXX. The file XXXXX is compressed or encoded in a way that this version of PKUNZIP is unable to handle. Either a different version of PKUNZIP is required to properly extract this file, or the .ZIP file is possibly corrupted. PKUNZIP: (W12) Skipping encrypted file. Only the files that are password protected will be skipped (not extracted) because they are encrypted and the correct password was not entered. PKUNZIP: (W13) Warning! Inconsistent local header for file: XXXXX. The local header for file XXXXX is different than the central header information. Use PKZIPFIX to reconstruct the .ZIP file. PKUNZIP: (W14) Incorrect password for file. The .ZIP file is password protected, and cannot be opened unless the correct password is entered. The password entered is not the correct password. See "Passwords" in the Advanced Features section for further information. PKUNZIP: (W15) Warning! File fails CRC check. The CRC-32 check for the file being extracted or tested did not match the stored value for the file. The file is probably corrupted. See the "Trouble Shooting" section for more details. PKUNZIP: (W16) Warning! File fails Authenticity Verification check The .ZIP file is AV encoded but the AV could not be verified. Failure of AV indicates a file which has been tampered with or damaged. If the file has failed the AV check the contents are suspect. PKUNZIP: (W17) Warning! File fails Authenticity Verification check The .ZIP file is AV encoded and has been tampered with or damaged. File should be discarded and a new copy obtained. PKUNZIP: (W18) Warning! File XXXXX already exists. Overwrite (y/n/a/r)? The file XXXXX already exists on the disk. Pressing N will leave the original file on the disk, and not extract the file from the .ZIP file. Pressing Y will extract the file from the .ZIP file, and overwrite the file on the disk. If you want to overwrite this file, and ALL FOLLOWING FILES, press A for ALL. If you wish to extract this file, but not overwrite an existing file, you may press R for RENAME. PKUNZIP will prompt you for a new name for the file. See Also: -o and -n options. PKWARE Inc. Error Messages 113 PKUNZIP: (W19) Warning! Invalid Shrunk file The Shrunk file being tested or extracted has an error in its encoding. The file is probably corrupt or not a .ZIP file. Files that have been damaged in this way cannot be recovered. PKUNZIP: (W20) Warning! Insufficient memory Insufficient memory is available to process the .ZIP file. Try making more memory available to PKUNZIP. If this does not rectify the problem, then the .ZIP file might be corrupted, and PKZIPFIX should be used to fix the .ZIP file. The more files present in a .ZIP file, the more memory it will take to process the file. PKUNZIP: (W21) Warning! File has bad table. The Deflated file being tested or extracted has an error in its encoding. The file is probably corrupt or not a .ZIP file. Files that have been damaged in this way cannot be recovered. PKUNZIP: (W23) Warning! File has bad table. The Deflated file being tested or extracted has an error in its encoding (bad block type). The file is probably corrupt or not a .ZIP file. Files that have been damaged in this way cannot be recovered. PKUNZIP: (W24) Warning! You need PKUNZIP version: X.X or later to extract XXXXX The file XXXXX is compressed or encoded in a way that this version of PKUNZIP is unable to handle. A more recent version of PKUNZIP is required to properly extract this file. The version number is listed as X.X. Contact PKWARE for upgrade information. PKUNZIP: (W25) Warning! .ZIP file comment too big The file comment attached to this .ZIP file is too large. The .ZIP file can still be handled normally but will not be displayed. PKUNZIP: (W26) XXXXX.ZIP has errors. The named .ZIP file had one or more errors detected in it. This message is displayed after PKUNZIP is finished acting upon a file. You may receive this message if you attempt to extract a file that is not a .ZIP file. 114 Error Messages PKZIP 2 ZIP2EXE Error Messages ~~~~~~~~~~~~~~~~~~~~~~ ZIP2EXE: (E01) Error in .ZIP file ZIP2EXE: (E02) Error in .ZIP file, use PKZIPFIX The .ZIP file you are attempting to process is corrupt. You may attempt recovery of the file by using PKZIPFIX. PKZIPFIX will work on either standard .ZIP files or self-extracting .EXE files. ZIP2EXE: (E03-04) Insufficient memory to process file The .ZIP file you are attempting to process is too complex. This may indicate a .ZIP file which contains too many files. In some cases you may receive this error because the file being processed is corrupt. ZIP2EXE: (E07) Can't open Source file The source .ZIP or .EXE file specified on the command line cannot be opened due to a disk error or insufficient network access. ZIP2EXE: (E08) Error in .ZIP file The .ZIP file you are attempting to process is corrupt. You may attempt recovery of the file by using PKZIPFIX. PKZIPFIX will work on either standard .ZIP files or self-extracting .EXE files. ZIP2EXE: (E09) Disk full writing target file during EXE to ZIP process ZIP2EXE: (E11) Disk full writing target file during ZIP to EXE process During the process of converting a file there must be enough disk space available to contain both the original file and the file which will be created. If there is not enough room to process the file on the current drive you may direct the output to another drive by specifying it on the command line. ZIP2EXE: (E12) Compression method not supported The .ZIP file being converted contains a file compressed with a method not supported by the version of PKSFX being attached by ZIP2EXE. You can only perform the ZIP2EXE process on .ZIP files created using the compression method(s) supported by the self-extracting module you are attaching. PKWARE Inc. Error Messages 115 PKSFX Warning/Error Messages ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PKSFX: (W01) File fails CRC checkPKSFX: (W01) Unknown compression method A warning may indicate any of several problems. See the corresponding PKUNZIP error message for explanation. PKSFX: (E03) Can't find .EXE file The self-extractor was unable to locate itself. When the self-extractor runs it must determine what the name of its executable file is. Anything which can prevent this from happening will generate this error. This error usually indicates an incorrect installation of DOS on the target machine. PKSFX: (E[4-8]) Insufficient memory Insufficient memory is available to process the .ZIP file. Try making more memory available to the Self-extractor. If this does not rectify the problem, then the self-extracting file might be corrupted, and PKZIPFIX should be used to fix the .EXE file. The more files present in a self-extracting .ZIP file, the more memory it will take to process the file. PKSFX: (E09) Unable to locate listfile The @list file specified on the command line could not be found. PKSFX: (E13) Error in .EXE file The self-extracting file is corrupt. This may occur due to a disk error, a transmission error, or a software problem. PKSFX: (E50) Disk full The self-extractor has run out of space while extracting the files it contains. You may either free up more disk space or direct the self-extractor to place the files on a different drive. 116 Error Messages PKZIP 2 PKSFX/PKUNZIP Junior Error Messages ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PKSFXJR: (W01) Warning error A warning may indicate any of several problems. See the corresponding PKUNZIP error message for explanation. PKSFXJR: (W02) Can't find .EXE file The self-extractor was unable to locate itself. When the self-extractor runs it must determine what the name of its executable file is. Anything which can prevent this from happening will generate this error. This error usually indicates an incorrect installation of DOS on the target machine. PKSFXJR: (W03) Error in .EXE file The self-extracting file is corrupt. This may occur due to a disk error, a transmission error, or a software problem. PKSFXJR: (W04) File has a bad table The compressed data is corrupt. This can indicate a damaged self-extracting file or data that was originally corrupt when the self-extracting file was created. PKSFXJR: (W05) Can't create file The self-extractor was unable to create a file it intended to extract. This may occur because you either do not have sufficient rights to a directory, or because all the directory entries are full. PKSFXJR: (W06) Disk full The self-extractor has run out of space while extracting the files it contains. You may either free up more disk space or direct the self-extractor to place the files on a different drive. PKSFXJR: (W07) Too many files A junior self-extractor may only contain 512 or fewer files. This error indicates either that more than 512 files are within the self-extractor or that the file is corrupt. PKWARE Inc. Error Messages 117 Error Levels ~~~~~~~~~~~~ In order to enhance the power of using PKZIP and PKUNZIP from within another program or within a batch file, they return error levels. These error levels are listed below. ** Please note that if testing error levels in a batch file, DOS tests the error level not for equality, but for greater than or equal to. PKZIP: 0 No error. 1 Bad file name or file specification. 2,3 Error in .ZIP file. 4-11 Insufficient Memory. 12 No files were found to add to the .ZIP file, or no files were specified for deletion. 13 File not found. The specified .ZIP file or list file was not found. 14 Disk full. 15 .ZIP file is read-only and can not be modified. 16 Bad or illegal parameters specified. (help screen displayed) 17 Too many files. 18 Could not open file. 255 User pressed control-c or control-break PKUNZIP: 0 No error. 1 Warning error (such as failed CRC check). 2,3 Error in .ZIP file. 4-8 Insufficient Memory. 9 File not found. No .ZIP files found. 10 Bad or illegal parameters specified. (help screen displayed) 11 No files found to extract/view etc. 50 Disk Full. 51 Unexpected EOF in .ZIP file. 255 User pressed control-c or control-break 118 Error Messages PKZIP 2 ZIP2EXE: 0 No error 1 Error in .ZIP file 2 Error in .ZIP file, use PKZIPFIX 3-4 Insufficient memory to process file 7 Can't open Source file 8 Error in .ZIP file 9 Disk full writing target file during EXE to ZIP process 11 Disk full writing target file during ZIP to EXE process 12 .ZIP file being converted contains a file compressed with a method not supported by the version of PKSFX being attached by ZIP2EXE 13 User answered "NO" in response to an "overwrite(y/n)?" prompt PKSFX: 1 Warning error such as: File fails CRC check, Unknown compression method. 3 Can't find .EXE file 4-8 Insufficient memory 9 Unable to located listfile 12 User aborted at comment pausing "Extract now (y/n)?" prompt 13 Error in .EXE file 50 Disk full PKSFX/PKUNZIP Junior: 1 Warning error such as: File fails CRC check, Unknown compression method. 2 Can't find .EXE file 3 Error in .EXE file 4 File has a bad table 5 Can't create file 6 Disk full 7 Too many files 8 User aborted at comment pausing "Extract now (y/n)?" prompt PKWARE Inc. Error Messages 119 PK SAFE ANSI PKSFANSI.COM PKSFANSI (PK Safe ANSI) is a Terminate and Stay Resident program that disables ANSI Keyboard Key Reassignments, thereby preventing "ANSI bombs" embedded in any text file (such as README files) or output by any program. Normally, ANSI sequences that redefine the keyboard could be hidden inside ANY text file or program, and could be executed completely unnoticed until it is too late. PKSFANSI intercepts calls to the ANSI.SYS or other ANSI device drivers, and filters out any keyboard reassignments, while allowing other ANSI sequences through unaltered. If a keyboard key reassignment is attempted, PKSFANSI will intercept the sequence and discard it. PKSFANSI also will BEEP to alert you that a reassignment was attempted. PKSFANSI requires less than 1k bytes resident RAM, and should work with any ANSI driver, such as the standard ANSI.SYS driver, NANSI, ZANSI, DVANSI, etc. Note that if you use a memory resident ANSI driver, such as the DESQview DVANSI.COM driver, PKSFANSI should be loaded after the ANSI driver is loaded. Usage Add PK Safe ANSI to your AUTOEXEC.BAT command file. Early in your AUTOEXEC.BAT file add the line: C:\PKWARE\PKSFANSI.COM This will cause the PK Safe ANSI TSR to be loaded into memory, allowing you to safely use ANSI codes. Once this is installed you may wish to turn on ANSI in your PKZIP configuration file. There should be this line present in your PKZIP.CFG file: ANSI=ENABLED To turn on ANSI for a particular PKZIP operation, or for a PKUNZIP operation, use the command option -q. pkunzip -v test.zip -q 120 PK SAFE ANSI PKZIP 2 Monochrome Option PK Safe ANSI has one option. This option will cause PK Safe ANSI to discard color codes. This is useful if you are using a laptop computer with a monochrome display. PKSFANSI -c Please note that this only affects programs which use ANSI for their display control. NOTE: PK Safe Ansi is included with the registered version of the software. PKWARE Inc. PK SAFE ANSI 121 INDEX -! Use AV feature 44 32-bit Instructions, Disabling 102 386/486 Instructions See 32-Bit 102 @List files 45 @List See List Files --- | A | --- Addendum File 7 ANSI Comments, enabling and disabling 37 Enabling during PKUNZIP 52 Archive file structure 95 Archive attribute -a+ Turn off archive attribute of added files 30 Defined 34 Clearing 30 Turning off (-i) 34 Attrib DOS command 27 Authenticity Verification See AV AUTOEXEC.BAT, Changes to 6 AV Application form 81 Defined 78, 85 Using 78, 79 PUTAV 78 --- | B | --- Bad Command or Filename 82 Bad Table 89 Banner, PKZIP 10, 23 BBS PKWARE 3 Support Conferences 3 Bracket Angle 2 Square 2 Brief View 40 --- | C | --- Cache failure (CPU) Slow MemCopy 104 Checking a .ZIP file See Testing Command Syntax 2 Comment .ZIP file 27 - 28, 43-44 Adding 31 Displaying 28 Maximum size 28, 43 Per file 27 Compatibility mode 47 Compression Displaying method 41 How it works 91-95 Lossy and Lossless 83 Specifying Method 32 Speed vs. Size 21-23 Theory 91-95 Type 23 Configuration options 76 Configuring PKZIP 74-77 Console, extracting file to 48 Conventions 1 CRC Defined 11 Failures explained 87 Failures, disabling 32-bit instructions 102 Viewing 40-41 Creating file comments 31 Customer Support 3, 105-106 Customer Support Form 106 Cyclic Redundancy Check See CRC --- | D | --- Date Compressing by range 38-39 Format 38-39 of .ZIP file 36 Delete Files while compressing 32, 12-13 From a .ZIP file 19,32 Files with a list file 67 Directory of a .ZIP file 40-41 Restoring structure 48-49 See also Path Disable ANSI 37 Disk Full, Overcoming 30-31 Disk Space, Conserving 30-31, 32 Don't Know How to Handle 86 DPMI, Disabling 104 --- | E | --- EMS, Disabling 103 Encryption 38 Decrypting encrypted files 53 Lost password, what to do. 86 Security 72-73 Using 68 Error Levels (Exit Codes) 118 PKSFX 119 PKSFX/PKUNZIP Junior 119 PKUNZIP 118 PKZIP 118 ZIP2EXE 119 Error Messages 107 - 119 Error Levels 118 PKSFX 116 PKSFX Junior 117 PKUNZIP 111-114 PKUNZIP Junior 117 PKZIP 107-109 ZIP2EXE 115 Exclude Files from extraction 55 From ZIP process 43 List files from extraction process 55 List files from ZIP process 43 Exit Codes See Error Levels Extra Compression 32-33 Extract Files to printer 52 In sorted order 49-50 Newer files only 51 To console 48 Extracting files 13 --- | F | --- Fast Compression 32-33 File Attributes Defined 26 Masking 34-35 Masking during extraction 51 Restoring during extraction 51 Retaining 34-35 Storing 26 Viewing 40-41 File Comments 27-28 File List See List File Freshen 83 a .ZIP file 33-34 Files in extract directory 50 --- | H | --- Help Displaying help screen (-h) 34, 50 For PKUNZIP (-h) 50 Trouble Shooting 101 - 106 Hidden Files 34-35 Compressing 26, 42 Restoring 51 --- | I | --- Inconsistent Local Header 89 Information Content 91-92 Installation 5 - 7 --- | J | --- Junior Error Messages 117 PKSFX 57-58 PKUNZIP 58 --- | L | --- Label, Volume See Volume Label List Files Excluding 43 @List File 45 Excluding from Extraction 55 Generating 46-47, 56, 65 Maximum size 45, 66 Possible contents of 63 Reading 64-65 Specifying 44-45 Using for compression 64 Locked files, Overcoming with -= 47 --- | M | --- Manual Conventions 1 Maximum Number of files in a .ZIP file 89 Size of .ZIP file comment 43-44 Size of list file 45, 66 Maximum Compression 32-33 Memory Requirements of PKSFX 62 Usage of PKZIP 89 Multi-Volume See also PKZIP Backup Guide --- | N | --- Network Disabling Network detection 103-104 Failure of PKZIP on server 88 Overcoming file locking 47 Never overwrite files 51 New files, Extracting 51 Normal Compression 32-33 --- | O | --- Optimizing PKZIP 89 Order of extraction 49-50 of View sort 40-42 Overwriting files (-o) 51 --- | P | --- Password See Encryption Path Defined 5 Extracting from a .ZIP file 18 Modifying 6 Restoring 84 Restoring structure 48-49 Storing 36-37 Storing in a .ZIP file 16 Storing with recursion 37-38 PK Safe ANSI 120 PKSFX Command Summary 59 Creating a Self-Extracting file 57 Error Messages 116 Junior 57-58 Legal Use of 61 Memory Requirements 62 Options 59 Sending to somone else 60-61 PKTMP 47, 89 PKUNZIP - Restore Volume Label 55
[email protected] Generate List file 56
-c extract files to console 48
-d Restore directory structure 48-49
-e Sorted extraction 49-50
-f Freshen extract directory 50
-j Mask of file attributes 51
-n Extract only newer files 51
-o Overwriting files 51
-o- Never overwrite files 51
-p Extract files to the printer 52
-q ANSI disabling/enabling 52-53
-s Extract encrypted files 53
-t Test .ZIP file integrity 54
-v View a .ZIP file 55
-x Exclude files 55
Error Messages 111
Junior 58
Warning Messages 112-114

PKZIP
-! Use AV 44
-\$ Store Volume label 46
-& Create multi-volume archive 45-46
-= File compatibility mode 47
[email protected] generate List file 46
-a+ Turn off archive attribute
-b Create temporary .ZIP file 30-31
files only 31-32

-d Deleting files from a .ZIP file 32
-e[x|n|f|s|0] Specify
compression method 32-33
-f Freshen file in a .ZIP file 33-34
-i Add files that have the
archive attribute 34
attributes 34-35
-k Retain original .ZIP file date 35
-m Move file 35-36
-o Set .ZIP file date 36
-P Preserve specified and
recursed path 36-37
-r Recurse subdirectories 37-38
-s Encrypt files 38

-t Take files according to date 38-39
-u Update files 39-40
-v View files 40-42
-W Specify hidden and
system files 42-43
-x Exclude files 43
-z Create or modify .ZIP file
comment 43-44
@ specify list file 45
Banner 23
Configuration file 74-77
Error Messages 107-109
How does it work? 91-100
Simple Commands 10
Warning Messages 110
PKZIP Configuration File 75
PKZIP Configuration Program 74
PKZIP.CFG 75
PKZIPFIX See the PKZIP Backup Guide
Printer, Extracting files to 24, 52
Printer Dump 24
Product Support 3
PUTAV See AV

---
| R |
---

Defined 26
Files 34-35
Restoring files 51
Storage of attribute 26
Recurse subdirectories 37-38
Restoring Volume Label 55

---
| S |
---

Scramble See Encryption
Self-extracting 57
Sort
Order of extraction 49-50
Order of View 40-42
Speed Of Compression 21
Speed vs. Size, Theory 21, 95
Storing (archive method) 32-33
Subdirectories 84
Storing 36-38
Super Fast compression 32-33
Support, Technical 3
Syntax 2
System Files 34-35
Restoring 51
Compressing 42-43

---
| T |
---

Technical Support, CompuServe 3
Technical View 40-42
Temporary .ZIP file location 30-31
Testing 15, 54
.ZIP files 54
Tree Storing structure 18-19
Tutorial 8 - 29

---
| U |
---

Update 83
Update files 39-40

---
| V |
---

View
a .ZIP file 11-12
Compressed files 25
Options 40-42
Sort order 42
Volume Label
Defined 25
Restoring 55
Saving and Restoring 25
Storing 46

---
| W |
---

Wildcards
Defined 8
See DOS manual for usage
---
| X |
---

XMS, Disabling 103

---
| Z |
---

.ZIP file , Date 35
.ZIP file comment 43-44
ZIP2EXE 57
Error Messages 115

December 23, 2017