Jump to content

Recommended Posts

Posted

I am trying to pass the -c parameter to a gzip command, but cannot get autoIt to make it work.

Here is the line i am currently using,

Run('"C:\Program Files (x86)\GnuWin32\bin\gzip.exe" "C:\Users\fp\Downloads\' & $sLatestFile & '"')

This works fine, but it deletes the file after it is zipped. I need it to not delete the file, so i need to use the -c switch. Anyone have any luck getting this to work?

Thanks.

Posted

This little script should get you started. It runs gzip with the output redirected to StandardOut and captures the content of StandarOut into a variable and the writes the content of the variable to a new file.

#include <Constants.au3>
Global $sCompressedData = ""
Global $iPID = -1
Global $sLatestFile = "Name of file to compress"

;Run gzip with output to Standard Out
$iPID = Run('"C:Program Files (x86)GnuWin32bingzip.exe" -c "C:UsersfpDownloads' & $sLatestFile & '"',@WorkingDir,@SW_HIDE,$STDOUT_CHILD)

; Read the compressed data from StandardOut
$sCompressedData = StdoutRead($iPID)
While Not @error
    $sCompressedData &= StdoutRead($iPID)
WEnd
; Now write the compressed data to a new file
FileWrite("C:UsersfpDownloads" & $sLatestFile & ".gz",$sCompressedData)

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning."- Rick Cook

Posted

This little script should get you started. It runs gzip with the output redirected to StandardOut and captures the content of StandarOut into a variable and the writes the content of the variable to a new file.

#include <Constants.au3>
Global $sCompressedData = ""
Global $iPID = -1
Global $sLatestFile = "Name of file to compress"

;Run gzip with output to Standard Out
$iPID = Run('"C:Program Files (x86)GnuWin32bingzip.exe" -c "C:UsersfpDownloads' & $sLatestFile & '"',@WorkingDir,@SW_HIDE,$STDOUT_CHILD)

; Read the compressed data from StandardOut
$sCompressedData = StdoutRead($iPID)
While Not @error
$sCompressedData &= StdoutRead($iPID)
WEnd
; Now write the compressed data to a new file
FileWrite("C:UsersfpDownloads" & $sLatestFile & ".gz",$sCompressedData)

Did this work for you?

I tried and it did run, but it did not compress the file.

  • Moderators
Posted

Have you looked at:

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

  • Moderators
Posted (edited)

No idea what -c switch is, not going to hunt it down either.

So.. Bowmore's looks correct unless the working directory is incorrect.

If the second file command line is actually what you're trying to write to, and if the gzip.exe already does that, no need for stdout, so you could do:

Run('"C:Program Files (x86)GnuWin32bingzip.exe" -c "C:UsersfpDownloads' & $sLatestFile & '"', @WorkingDir)

If that doesn't work, you could try:

Run('"C:Program Files (x86)GnuWin32bingzip.exe" -c "C:UsersfpDownloads' & $sLatestFile & '"', '"C:Program Files (x86)GnuWin32bin"')
Edited by SmOke_N

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

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
  • Recently Browsing   0 members

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