Posts: 100
Threads: 45
Joined: Jan 2014
Hi,
Recently, I learned here how to get a file from internet and rename it with the current data in my PC.
I'm using the follow link:
;allow single instance
if(getopt(nthreads)>1) end "The thread is already running. You can end it in the 'Running items' pane."
str sf sd ;;variables
;download image data into variable sd
int downloaded
rep 60 ;;repeat max 10 minutes every 10 s until success
,IntGetFile "http://image.weather.com/images/maps/forecast/precfcst_600x405.jpg" sd
,err 10; continue ;;if error, retry after 10 s
,downloaded=1
,break
if(!downloaded) end "failed to download"
;format filename and save to file
sf.timeformat("$my qm$\Image-{yyyy-MM-dd}.jpg")
sd.setfile(sf)
run sf ;;open the image. Delete this line if don't need.
However, now I'm trying to do the same macro for 87 links...and it's getting very tiring, because i have to make 87 macros.
So, How can i make it in a single macro ? I mean...I'd like to list all the links in the same macro.
Again, thanks a lot for helping.
Posts: 133
Threads: 15
Joined: Jun 2014
Macro Macro20
;allow single instance
if(getopt(nthreads)>1) end "The thread is already running. You can end it in the 'Running items' pane."
;Add up to 87 links as you like.
str s=
;link 1
;link 2
;link 3
str line sf sd ;;variables
foreach line s
,rep 60
,,IntGetFile line
,,err 10; continue ;;if error, retry after 10 s
,,downloaded=1
,,break
,if(!downloaded) end "failed to download"
;format filename and save to file
,sf.timeformat("$my qm$\Image-{yyyy-MM-dd}.jpg")
,sd.setfile(sf)
Posts: 12,073
Threads: 140
Joined: Dec 2002
similar, with a sub-function
Macro Macro2472
;allow single instance
if(getopt(nthreads)>1) end "The thread is already running. You can end it in the 'Running items' pane."
;create folder for files
str folder="$desktop$\test643"
mkdir folder
;list of files to download
str files=
;http://www.quickmacros.com/download.html
;http://www.quickmacros.com/support.html
;call sub-function Download for each file
str s
foreach s files
,sub.Download folder s
#sub Download
function str'folder str'url
spe -1
str sf sd ;;variables
;download imagefile data into variable sd
int downloaded
rep 60 ;;repeat max 10 minutes every 10 s until success
,IntGetFile url sd
,err 10; continue ;;if error, retry after 10 s
,downloaded=1
,break
if(!downloaded) end F"failed to download {url}"
;format filename and save to file
sf.getfilename(url 1)
sd.setfile(F"{folder}\{sf}")
Posts: 100
Threads: 45
Joined: Jan 2014
Guys,
It worked...thank you.
I just have one issue...
I'd like to rename the file, inserting the current date, but keeping the same extension.
I tried:
sf.getfilename(url 1)
sf.timeformat("File1-{yyyy-MM-dd}")
sd.setfile(F"{folder}\{sf}")
But it failed
Could you please help me once more?
Posts: 133
Threads: 15
Joined: Jun 2014
Macro Macro20
;allow single instance
if(getopt(nthreads)>1) end "The thread is already running. You can end it in the 'Running items' pane."
;create folder for files
str folder="$desktop$\test643"
mkdir folder
;Add up to 87 links as you like.
str s=
;http://www.quickmacros.com/download.html
;http://www.quickmacros.com/support.html
int downloaded index=1
str line sf sd timef;;variables
foreach line s
,rep 60
,,IntGetFile line sd
,,err 10; continue ;;if error, retry after 10 s
,,downloaded=1
,,break
,if(!downloaded) end "failed to download"
,;format filename and save to file
,timef.timeformat("{yyyy-MM-dd}")
,_s.from(folder "\" "File" index "-" timef)
,sd.setfile(_s)
,index+1
Posts: 100
Threads: 45
Joined: Jan 2014
Lionking,
It's almost there. But the macro is saving with no extension.
Do you know how can I fix it ?
Another point, I saw you put "Index" to create File1, File2, File3...This is very useful for me...but in some files (I can run in another macro) I'd like to keep the original name of the file.
Ex1:
http://www.eduplace.com/ss/maps/pdf/us_nl.pdf
The Macro will save as: us_nl 2014-12-26.pdf
Ex2:
http://www.un.org/Depts/dhl/maplib/imag ... unflag.gif
The Macro will save as: unflag 2014-12-26.gif
Sorry for the long post, but I really appreciate your help.
Posts: 133
Threads: 15
Joined: Jun 2014
Macro Macro26
;allow single instance
if(getopt(nthreads)>1) end "The thread is already running. You can end it in the 'Running items' pane."
;create folder for files
str folder="$desktop$\test643"
mkdir folder
;list of files to download
str files=
;http://www.eduplace.com/ss/maps/pdf/us_nl.pdf
;http://www.un.org/Depts/dhl/maplib/images_maplib/unflag.gif
;call sub-function Download for each file
str s
int filenum=1
foreach s files
,sub.Download folder s filenum
,filenum+1
#sub Download
function str'folder str'url index
spe -1
str sf sd ;;variables
;download imagefile data into variable sd
int downloaded
rep 60 ;;repeat max 10 minutes every 10 s until success
,IntGetFile url sd
,err 10; continue ;;if error, retry after 10 s
,downloaded=1
,break
if(!downloaded) end F"failed to download {url}"
;format filename and save to file
sf.getfilename(url 1)
str ext.GetFilenameExt(sf)
str timef.timeformat("{yyyy-MM-dd}")
_s.from("File" index "-" timef "." ext)
sd.setfile(F"{folder}\{_s}")
Posts: 100
Threads: 45
Joined: Jan 2014
This is Perfect!
Thanks a lot, Lionking. :mrgreen:
|