<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: zip with password from SAS in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/zip-with-password-from-SAS/m-p/740824#M231485</link>
    <description>Can you please provide the SYATASK code to include zip file password in SAS V9.3&lt;BR /&gt;&lt;BR /&gt;Code:&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;data _null_;&lt;BR /&gt;call symput('date',(put(date(),yymmddn8.)));&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;/* ods begin */&lt;BR /&gt;ods package(ProdOutput) open nopf;&lt;BR /&gt;ods package(ProdOutput)&lt;BR /&gt;add file= "&amp;amp;directory\DONKEY_XX_Conc_HHHH_%sysfunc(today(),YYMMDDN8.).csv";&lt;BR /&gt;&lt;BR /&gt;ods package(ProdOutput)&lt;BR /&gt;publish archive&lt;BR /&gt;properties&lt;BR /&gt;(archive_name= "DONKEY_XX_%trim(&amp;amp;date.).zip"&lt;BR /&gt;archive_path="&amp;amp;directory");&lt;BR /&gt;ods package(ProdOutput) close;&lt;BR /&gt;/* ods end */</description>
    <pubDate>Wed, 12 May 2021 15:16:37 GMT</pubDate>
    <dc:creator>kirankp</dc:creator>
    <dc:date>2021-05-12T15:16:37Z</dc:date>
    <item>
      <title>zip with password from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/zip-with-password-from-SAS/m-p/693660#M211558</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Has SAS developed a method in the meantime to zip files from the SAS server with encryption ? (password).&lt;/P&gt;&lt;P&gt;I'm not looking for methods such as intalling winzip command line on the SAS server. I mean a home grown SAS method.&lt;/P&gt;&lt;P&gt;Thanks !&lt;/P&gt;&lt;P&gt;Rgds&lt;/P&gt;&lt;P&gt;B&lt;/P&gt;</description>
      <pubDate>Fri, 23 Oct 2020 06:00:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/zip-with-password-from-SAS/m-p/693660#M211558</guid>
      <dc:creator>Billybob73</dc:creator>
      <dc:date>2020-10-23T06:00:42Z</dc:date>
    </item>
    <item>
      <title>Re: zip with password from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/zip-with-password-from-SAS/m-p/693946#M211608</link>
      <description>&lt;P&gt;There may well be a way; hopefully someone will comment if so.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;However, if you launch a WinZip (or whatever Zip tool is on your system) using SYSTASK, you can do it completely from within SAS, no exiting and manually using the command line.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Jim&lt;/P&gt;</description>
      <pubDate>Sat, 24 Oct 2020 00:03:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/zip-with-password-from-SAS/m-p/693946#M211608</guid>
      <dc:creator>jimbarbour</dc:creator>
      <dc:date>2020-10-24T00:03:12Z</dc:date>
    </item>
    <item>
      <title>Re: zip with password from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/zip-with-password-from-SAS/m-p/693975#M211616</link>
      <description>&lt;P&gt;&lt;A href="https://documentation.sas.com/?cdcId=pgmsascdc&amp;amp;cdcVersion=9.4_3.4&amp;amp;docsetId=lestmtsglobal&amp;amp;docsetTarget=n1dn0f61yfyzton1l2ngsa1clllr.htm&amp;amp;locale=en" target="_blank" rel="noopener"&gt;FILENAME ZIP&lt;/A&gt;&amp;nbsp;does not provide a password option, so the answer is no.&lt;/P&gt;</description>
      <pubDate>Sat, 24 Oct 2020 07:31:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/zip-with-password-from-SAS/m-p/693975#M211616</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2020-10-24T07:31:56Z</dc:date>
    </item>
    <item>
      <title>Re: zip with password from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/zip-with-password-from-SAS/m-p/740824#M231485</link>
      <description>Can you please provide the SYATASK code to include zip file password in SAS V9.3&lt;BR /&gt;&lt;BR /&gt;Code:&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;data _null_;&lt;BR /&gt;call symput('date',(put(date(),yymmddn8.)));&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;/* ods begin */&lt;BR /&gt;ods package(ProdOutput) open nopf;&lt;BR /&gt;ods package(ProdOutput)&lt;BR /&gt;add file= "&amp;amp;directory\DONKEY_XX_Conc_HHHH_%sysfunc(today(),YYMMDDN8.).csv";&lt;BR /&gt;&lt;BR /&gt;ods package(ProdOutput)&lt;BR /&gt;publish archive&lt;BR /&gt;properties&lt;BR /&gt;(archive_name= "DONKEY_XX_%trim(&amp;amp;date.).zip"&lt;BR /&gt;archive_path="&amp;amp;directory");&lt;BR /&gt;ods package(ProdOutput) close;&lt;BR /&gt;/* ods end */</description>
      <pubDate>Wed, 12 May 2021 15:16:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/zip-with-password-from-SAS/m-p/740824#M231485</guid>
      <dc:creator>kirankp</dc:creator>
      <dc:date>2021-05-12T15:16:37Z</dc:date>
    </item>
    <item>
      <title>Re: zip with password from SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/zip-with-password-from-SAS/m-p/743465#M232784</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/381678"&gt;@kirankp&lt;/a&gt;, I wrote a macro to do the zipping for me.&amp;nbsp; We have WinZip.exe on our server.&amp;nbsp; You might have different software on your server.&amp;nbsp; I'll put the macro down below.&amp;nbsp; The macro calls some other macros, but don't get too worried about that.&amp;nbsp; Look at what the macro is doing in terms of the actual zipping, and perhaps you can use this as something of a template.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Jim&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;/*-------------------------------------------------------------------------------*/
/*	Macro:	Archive_Data
/*  Author: Jim Barbour 
/*	Date:	26 February 2020
/*	Info:	This macro calls WinZip to create a Zip archive of whatever file is
/*			passed in as an arugument to the macro call.  Input parameters are
/*			first.  Output parameters (pertaining to the zip file) are second.
/*
/*			If you are archiving a SAS data set and that SAS data set has an 
/*			index, you must archive both the SAS data set and the corresponding
/*			index data set or SAS will consider the data corrupted.
/*
/*			Filename Pre_Zip will verify the existence of a file prior to running
/*			the Zip commands.
/*-------------------------------------------------------------------------------*/
/*									CHANGE LOG
/*-------------------------------------------------------------------------------*/
/*	Name:	Jim Barbour				Date:	26 February 2020
/*	Info:	Original implementation.
/*-------------------------------------------------------------------------------*/

&amp;amp;Null	%MACRO	Archive_Data(File_Path, File_Name, Zip_Path, Zip_Name, 
							ZipPgmPath=, Width=115, Xmin=XMIN, Xwait=XWAIT, 
							Run_Mode=PROD, Debug=NO, Trace=NO);
	%LOCAL	Zip_File;
	%LOCAL	Full_File;
	%LOCAL	ZipPgmPath;
	%LOCAL	Cmnt;
	%LOCAL	MacroName;
	%LOCAL	Save_Xwait;

	OPTION	&amp;amp;Xmin;

	%LET	MacroName								=	&amp;amp;SysMacroName;
	%Start_Mac(&amp;amp;MacroName, Trace=&amp;amp;Trace)

	%IF	%QUPCASE(&amp;amp;Debug)							=	YES			%THEN
		%DO;
			%LET	Cmnt							=	;
			%PUT	&amp;amp;Nte1  Debug is on in macro &amp;amp;Sysmacroname;
		%END;
	%ELSE
		%DO;
			%LET	Cmnt							=	*;
		%END;

	%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  Initial Xwait option is 			%SYSFUNC(GETOPTION(XWAIT));
	%LET	Save_Xwait								=	%SYSFUNC(GETOPTION(XWAIT));
	%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  Saved Xwait option is   			&amp;amp;Save_Xwait;

	OPTION	&amp;amp;Xwait;
	%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  Current Xwait option is  		%SYSFUNC(GETOPTION(XWAIT));

	%IF	%SYMEXIST(Data_Path)										AND
		%BQUOTE(&amp;amp;File_Path)							=	%STR()		%THEN
		%DO;
			%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  Setting File_Path to Global variable Data_Path which is equal to &amp;amp;Data_Path;
			%LET	File_Path						=	&amp;amp;Data_Path;
		%END;
	%ELSE
		%DO;
			%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  File_Path was supplied as &amp;amp;File_Path;
		%END;

	%IF	%SYMEXIST(Arch_Path)										AND
		%BQUOTE(&amp;amp;Zip_Path)							=	%STR()		%THEN
		%DO;			
			%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  Setting Zip_Path to Global variable Arch_Path which is equal to &amp;amp;Arch_Path;
			%LET	Zip_Path						=	&amp;amp;Arch_Path;
		%END;
	%ELSE
		%DO;
			%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  Zip_Path was supplied as &amp;amp;Zip_Path;
		%END;

	%IF	%BQUOTE(&amp;amp;ZipPgmPath)						=	%STR()		%THEN
		%DO;
			%LET	ZipPgmPath						=	E:\%STR("")Program Files%STR("")\WinZip\wzzip.exe;
			%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  Setting ZipPgmPath to default value of &amp;amp;ZipPgmPath;
		%END;
	%ELSE
		%DO;
			%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  ZipPgmPath was supplied as |&amp;amp;ZipPgmPath|;
		%END;

	%IF	%BQUOTE(%SYSFUNC(LENGTHN(&amp;amp;File_Path)))		&amp;gt;	0			AND
		%BQUOTE(%SYSFUNC(SUBSTR(&amp;amp;File_Path,	%SYSFUNC(LENGTH(&amp;amp;File_Path)), 1)))	^=	%STR(\)	%THEN
		%DO;
			%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  Length of &amp;amp;File_Path	=	%BQUOTE(%SYSFUNC(LENGTHN(&amp;amp;File_Path)));
			%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  Last char &amp;amp;File_Path	=	%BQUOTE(%SYSFUNC(SUBSTR(&amp;amp;File_Path,	%SYSFUNC(LENGTH(&amp;amp;File_Path)), 1)));
			%LET	File_Path						=	&amp;amp;File_Path%STR(\);
			%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  Added a back slash to File_Path:  &amp;amp;File_Path;
		%END;
	%ELSE
		%DO;
			%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  Length of &amp;amp;File_Path	=	%BQUOTE(%SYSFUNC(LENGTHN(&amp;amp;File_Path)));
			%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  Last char &amp;amp;File_Path	=	%BQUOTE(%SYSFUNC(SUBSTR(&amp;amp;File_Path,	%SYSFUNC(LENGTH(&amp;amp;File_Path)), 1)));
			%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  Did NOT add a new back slash to File_Path:  &amp;amp;File_Path;
		%END;

	%IF	%BQUOTE(%SYSFUNC(LENGTHN(&amp;amp;Zip_Path)))		&amp;gt;	0			AND
		%BQUOTE(%SYSFUNC(SUBSTR(&amp;amp;Zip_Path,	%SYSFUNC(LENGTH(&amp;amp;Zip_Path)), 1)))	^=	%STR(\)	%THEN
		%DO;
			%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  Length of &amp;amp;Zip_Path	=	%BQUOTE(%SYSFUNC(LENGTHN(&amp;amp;Zip_Path)));
			%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  Last char &amp;amp;Zip_Path	=	%BQUOTE(%SYSFUNC(SUBSTR(&amp;amp;Zip_Path,	%SYSFUNC(LENGTH(&amp;amp;Zip_Path)), 1)));
			%LET	Zip_Path						=	&amp;amp;Zip_Path%STR(\);
			%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  Added a back slash to Zip_Path:  &amp;amp;Zip_Path;
		%END;
	%ELSE
		%DO;
			%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  Length of &amp;amp;Zip_Path	=	%BQUOTE(%SYSFUNC(LENGTHN(&amp;amp;Zip_Path)));
			%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  Last char &amp;amp;Zip_Path	=	%BQUOTE(%SYSFUNC(SUBSTR(&amp;amp;Zip_Path,	%SYSFUNC(LENGTH(&amp;amp;Zip_Path)), 1)));
			%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  Did NOT add a new back slash to Zip_Path:  &amp;amp;Zip_Path;
		%END;

	%LET		Full_File							=	%SYSFUNC(CATS(&amp;amp;File_Path., 	&amp;amp;File_Name.));
	%LET		Zip_File							=	%SYSFUNC(CATS(&amp;amp;Zip_Path., 	&amp;amp;Zip_Name., .zip));

	%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  &amp;amp;=Full_file;
	%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  &amp;amp;=Zip_file;

	FILENAME	Pre_Zip				"&amp;amp;Full_File";

	DATA	_NULL_;
		LENGTH	_RC				4.;
		LENGTH	_Line			$255;

		INFILE	Pre_Zip;

		_RC											=	INPUT(SYMGET('SYSCC'), 4.);;
		IF	0	&amp;lt;	_RC								&amp;lt;	8			THEN
			DO;
				PUTLOG	"&amp;amp;Err2  %Format_Dashes(&amp;amp;Width)";
				_Line								=	RESOLVE(CAT('&amp;amp;Err1  %Format_Line(Pre-Zip failed check failed for &amp;amp;File_Name..  SYSCC = ', STRIP(PUT(_RC, 4.)), '., &amp;amp;Width)'));
				PUTLOG	_Line;
				PUTLOG	"&amp;amp;Err2  %Format_Dashes(&amp;amp;Width)";
				PUTLOG	"&amp;amp;Err2  ";
			   	CALL	SYMPUTX('SYSCC',	8, 	'G');
			END;
		ELSE
			DO;
				&amp;amp;Cmnt	PUTLOG	"&amp;amp;Nte2 Pre-Zip file check successful";
			END;
	RUN;

	%&amp;amp;Cmnt.List_RC(Dashes=YES);

	%IF	&amp;amp;SYSCC										=	0			%THEN
		%DO;
			%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  SYSCC is 0.  Starting Zip Archive creation process;

			%cd(&amp;amp;Zip_Path);

			%**-----------------------------------------------------------------------------**;
			%**								ORIGINAL VERSION								**;
			%**	The following file name works but only with files less than about 14 Gb.  	**;
			%**	For some reason, larger files "hang" and neither succeed nor fail.  	 	**;
			%**	Workaround #1 is to write to an intermediate STDOUT text file.				**;
			%**-----------------------------------------------------------------------------**;
			%*FILENAME	WinOpSys	PIPE		"&amp;amp;ZipPgmPath. -a ""&amp;amp;Zip_File."" ""&amp;amp;Full_File.""";

			%**-----------------------------------------------------------------------------**;
			%**								WORKAROUND #1									**;
			%**	The following file name is for Workaround #1.  The original file name is  	**;
			%**	split into 1) an independent (no PIPE) "X" command that writes to an   	 	**;
			%**	intermediate STDOUT text file and 2) a Filename that reads that STDOUT.		**;
			%**-----------------------------------------------------------------------------**;
			%*X	"del WinZip_STDOUT_Temp.txt &amp;amp; &amp;amp;ZipPgmPath. -a ""&amp;amp;Zip_File."" ""&amp;amp;Full_File.""	&amp;gt;	WinZip_STDOUT_Temp.txt";
			%*FILENAME	WinOpSys	"WinZip_STDOUT_Temp.txt";

			%**-----------------------------------------------------------------------------**;
			%**								WORKAROUND #2									**;
			%**	The following file name is for Workaround #2.  STDOUT is piped directly  	**;
			%**	into the DATA step but STDERR ("2") is redirected to a STDERR text file.	**;
			%**	Apparently, when both STDOUT and STDERR are piped directly into the DATA	**;
			%**	step, some buffer gets full, and the entire process freezes.  The downside	**;
			%**	of redirecting STDERR to an external text file is that STDERR is then no 	**;
			%**	longer available inside the DATA step.  If there is a problem, the external **;
			%**	text file must be examined manually or in a subsequent DATA step.			**;
			%**-----------------------------------------------------------------------------**;
			FILENAME	WinOpSys	PIPE		"&amp;amp;ZipPgmPath. -a ""&amp;amp;Zip_File."" ""&amp;amp;Full_File.""	2&amp;gt;	WinZip_STDERR_Temp.txt";

			DATA	_NULL_;
				LENGTH	_Curr_DateTime	$23;
				LENGTH	_Line			$255;
				LENGTH	_RC				4.;
				LENGTH	_First_Time		3.;
				LENGTH	_Total_Bytes	3.;

				RETAIN	_First_Time		1;
				RETAIN	_Total_Bytes	0;

				**------------------------------------------------------------------------------**;
				**	The "Start Zip at" log message is inaccurate when an intermediate text file	**;
				**	is used and, in such a case (Workaround #1), should be commented out.		**;
				**	For Workaround #2, the "Start Zip at" works fine and may be uncommented.	**;
				**------------------------------------------------------------------------------**;
				IF	_First_Time										THEN
					DO;
						_First_Time					=	0;
						PUTLOG	"&amp;amp;Nte2  %Format_Dashes(&amp;amp;Width)";
						_Curr_DateTime				=	TRANWRD(PUT(DATETIME(), E8601DT23.2), 'T', ' ');
						_Line						=	RESOLVE(CAT('&amp;amp;Nte1  %Format_Line(Start Zip at ', STRIP(_Curr_DateTime), '., &amp;amp;Width)'));
						PUTLOG	_Line;
					END;

				**------------------------------------------------------------------------------**;
				**	As with a FILENAME with a PIPE, the following "filenameless" INFILE works  	**;
				**	but only with files less than about 14 Gb.	Using an intermediate text   	**;
				**	file is the Workaround #1 for this odd bug.  Workaround #2 is to redirect	**;
				**	STDERR to an external text file.  See examples, above.						**;
				**------------------------------------------------------------------------------**;
*				INFILE	"&amp;amp;ZipPgmPath. -a ""&amp;amp;Zip_File."" ""&amp;amp;Full_File."""	PIPE
*									TRUNCOVER
*									END				=	_Zip_Process_Complete
*									LENGTH			=	_SAS_Length
*									;

				INFILE	WinOpSys	TRUNCOVER
									END				=	_Zip_Process_Complete
									LENGTH			=	_SAS_Length
									;

				INPUT	_WinZip_Msg	$VARYING32766.		_SAS_Length;

				_Line								=	RESOLVE(CAT('&amp;amp;Nte2  %Format_Line(%STR(', STRIP(_WinZip_Msg), '), &amp;amp;Width)'));
				PUTLOG	_Line;

				IF	INDEX(_WinZip_Msg, 'Total bytes=')				THEN
					DO;
						&amp;amp;Cmnt	PUTLOG	"&amp;amp;Nte2  | 'Total bytes=' has been found";
						_Total_Bytes				=	1;
					END;

				IF	_Zip_Process_Complete							THEN
					DO;
						IF	NOT	_Total_Bytes						THEN
							DO;
								PUTLOG	"&amp;amp;Warn2  %Format_Dashes(&amp;amp;Width)";
								_Line				=	RESOLVE(CAT('&amp;amp;Warn1  %Format_Line(&amp;amp;sQuote.Total bytes=&amp;amp;sQuote. not returned by WinZip, &amp;amp;Width)'));
								PUTLOG	_Line;
								_Line				=	RESOLVE(CAT('&amp;amp;Warn2  %Format_Line(Results are suspect.  Check zip archive., &amp;amp;Width)'));
								PUTLOG	_Line;
								PUTLOG	"&amp;amp;Warn2  %Format_Dashes(&amp;amp;Width)";
								_RC					=	INPUT(SYMGET('SysRC'), 4.);
								IF	_RC				&amp;lt;	4			THEN
									DO;
										&amp;amp;Cmnt	PUTLOG	"&amp;amp;Nte2  Setting SYSCC and SYSRC to 4";
										CALL	SYMPUTX('SYSCC', '4', 'G');
										CALL	SYMPUTX('SYSRC', '4', 'G');
									END;
							END;
						_Curr_DateTime				=	TRANWRD(PUT(DATETIME(), E8601DT23.2), 'T', ' ');
						_Line						=	RESOLVE(CAT('&amp;amp;Nte2  %Format_Line(End Zip at ', STRIP(_Curr_DateTime), '., &amp;amp;Width)'));
						PUTLOG	_Line;

						_RC							=	INPUT(SYMGET('SysRC'), 4.);

						IF	_RC						=	0			THEN
							DO;
								PUTLOG	"&amp;amp;Nte2  %Format_Line(Return code from zipping &amp;amp;File_Name = 0., &amp;amp;Width)";
								PUTLOG	"&amp;amp;Nte2  %Format_Dashes(&amp;amp;Width)";
								PUTLOG	"&amp;amp;Nte2  ";
							END;
						ELSE
							DO;
								PUTLOG	"&amp;amp;Err2  %Format_Dashes(&amp;amp;Width)";
								_Line				=	RESOLVE(CAT('&amp;amp;Err1  %Format_Line(Return code from zipping &amp;amp;File_Name = ', STRIP(PUT(_RC, 4.)), '., &amp;amp;Width)'));
								PUTLOG	_Line;
								PUTLOG	"&amp;amp;Err2  %Format_Dashes(&amp;amp;Width)";
								PUTLOG	"&amp;amp;Err2  ";
							END;
					END;
			RUN;
		%END;
	%ELSE
		%DO;
			%PUT	&amp;amp;Warn2  ;
			%PUT	&amp;amp;Warn2  %Format_Dashes(&amp;amp;Width);
			%PUT	&amp;amp;Warn1  %Format_Line(SYSCC%STR(=)&amp;amp;SYSCC after Pre-Zip file check.  Skipping Zip archive creation., &amp;amp;Width);
			%PUT	&amp;amp;Warn2  %Format_Line(Make sure to run %NRSTR(%Reset_RC) or %NRSTR(%Reset_All) before re-running., &amp;amp;Width);
			%PUT	&amp;amp;Warn2  %Format_Dashes(&amp;amp;Width);
		%END;

	%IF	%QUPCASE(&amp;amp;Run_Mode)							=	TEST		%THEN
		%DO;
			%List_RC(Dashes=YES);
			%PUT	_LOCAL_;
		%END;

	OPTION	&amp;amp;Save_Xwait;
	%&amp;amp;Cmnt.PUT	&amp;amp;Nte2  Final Xwait option is %SYSFUNC(GETOPTION(XWAIT));

	%LET	MacroName	=	&amp;amp;SysMacroName;  %End_Mac(&amp;amp;MacroName, Trace=&amp;amp;Trace)
%MEND	Archive_Data;

%**-----------------------------------------------------------------------------**;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 25 May 2021 03:30:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/zip-with-password-from-SAS/m-p/743465#M232784</guid>
      <dc:creator>jimbarbour</dc:creator>
      <dc:date>2021-05-25T03:30:37Z</dc:date>
    </item>
  </channel>
</rss>

