Jump to content

Zipping Files Using Variables


Recommended Posts

Hi AutoIT Forums,

I'm trying to write a script that will scan a directory for .accdb files and zip them. Here is what I have:

$directory = InputBox ("Directory", "Please enter the directory.")
$scan = FileFindFirstFile($directory & "\" & "*.accdb")
If $scan = -1 Then
    MsgBox(0, "Error", "There are no databases in that directory.")
    Exit
EndIf
While 1
   Local $file = FileFindNextFile($scan)
   If @error Then ExitLoop
   RunWait('Winzip32.exe -a "'$directory & "\" & $file'" "'$directory & "\" & $file'"')
  
  WEnd
FileClose($scan)

The script is able to locate all of the .accdb files in a given directory, I'm just stuck on how I can get the RunWait command to recognize variables.

For example, this code works:

RunWait('Winzip32.exe -a "C:\Users\dberndt\Desktop\Test\Database1.zip" "C:\Users\dberndt\Desktop\Test\Database1.accdb"')

But this does not:

RunWait('Winzip32.exe -a "'$directory & "\" & $file'" "'$directory & "\" & $file'"')

Any help would be very much appreciated. Thank you in advance for your time and kindness.

Link to comment
Share on other sites

Give this a try:

RunWait('Winzip32.exe -a "' & $directory & '' & $file & '" "' & $directory & '' & $file & '"')

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

Thank you very much, water, it appears that syntax is correct. However, I have one more hurdle to jump. When I run the script, I get an error from WinZip:

Cannot open file: it does not appear to be a valid archive.

I think I need to differentiate between the .zip and the .accdb. I tried the following code with no luck:

RunWait('Winzip32.exe -a "' & $directory & '' & $file & '.accdb' '" "' & $directory & '' & $file & '.zip' '"')

If anyone has any suggestions, I'd be very grateful.

Link to comment
Share on other sites

FielFindNextFile returns a filename including extension e.g. test.accdb.

You need to strip off the filename and then can add ".zip" to it.

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...