Post a reply

Options
Add an Attachment

If you do not want to add an Attachment to your Post, please leave the Fields blank.

(maximum 10 MB; please compress large files; only common media, archive, text and programming file formats are allowed)

Options

Topic review

martin

An easy way is to select only *.csv files for the transfer (this assumes you subfolder names don't have .csv extension):

get -delete *.csv C:\Users\hash\Desktop\BI\


Or you can explicitly exclude subfolders:

get -filemask="*.csv|*\" -delete *.* C:\Users\hash\Desktop\BI\


See https://winscp.net/eng/docs/faq_script_non_recursive
Hushham

Dear Martin,

Thanks for the reply, actually I want the files only and not the folders.
Is there a command who can pick '.csv' files only and not the subfolder?

right now I am getting the subfolders as well.
martin

Hushham wrote:

It copied the folder named 1 & 2 as well.

Sorry, I got lost.
This is what you wanted, isn't it?

Previously your wrote:
I am using 5.13.6 & I am using below command to get csv file from the listed folder & its subfolder but it only gets file from the specified folder.

What sounds like the files in subfolders were not downloaded, but you wanted them to. So it seems like now you have what you wanted.
Hushham

I forgot to tell you, I used the most latest version 5.13.7
Hushham

Dear Martin,

Thanks for the reply, the log of the below command is attached privately to you. Please check.
Command used is as below. It copied the folder named 1 & 2 as well.

get -filemask="*.csv" -delete *.* C:\Users\hash\Desktop\BI\

Thanks
martin

Hushham wrote:

get -filemask="*.csv" -delete *.* C:\Users\hash\Desktop\BI\
result = it transferred the complete folder including subfolder.

This is correct. If it does not work for you, please attach a full session log file showing the problem (using the latest version of WinSCP).

To generate the session log file, use /log=path_to_log_file command-line argument. Submit the log with your post as an attachment. Note that passwords and passphrases not stored in the log. You may want to remove other data you consider sensitive though, such as host names, IP addresses, account names or file names (unless they are relevant to the problem). If you do not want to post the log publicly, you can mark the attachment as private.
Hushham

referring to your below post, I have tried this as well but it didnt work as well

https://winscp.net/forum/viewtopic.php?t=22142

I tried get * C:\Users\hash\Desktop\BI\ -filemask="*.csv"
result = it copied all complete folder again.
Hushham

Just to tell you, I have used all below

get -delete "*.csv" C:\Users\hash\Desktop\BI\
result = No file matching '*.csv' found

get -delete "*\*.csv" C:\Users\hash\Desktop\BI\
result = No file matching '*\*.csv' found

get -filemask="*.csv" -delete *.* C:\Users\hash\Desktop\BI\
result = it transferred the complete folder including subfolder.
Hushham

Getting specific file extension from all subfolders

Hi Martin,
You have explained everything wonderfully but I am having a trouble in getting specific file from all subfolders.
I am using 5.13.6 & I am using below command to get csv file from the listed folder & its subfolder but it only gets file from the specified folder.
get -delete *.csv C:\Users\hash\Desktop\BI\
I have checked all changes like */*.csv etc.
I have also checked
get -filemask="*.csv" -delete *.* C:\Users\hash\Desktop\BI\
but of no use.
I want to take all .csv files from folder/subfolder & delete it later on.
Thanks
plubarj2

Thank you Prikryl
Apparently, the version I was running 4.3.9 doesn't like the filemask switch: "Unknowm switch 'filemask'".
I installed the 5.1 and it works great!

Thanks once more for the project and your support. I will donate :D
martin

Re: Get including subfolders

What version of WinSCP are you using? Make sure, you have the latest one.

Use just simple mask "*.txt".
Also note that you should use -filemask switch instead of the "option include" (although it is still supported for backwards compatibility).

get -delete -resume -preservetime -filemask="*.txt" /data/* C:\temp\


If it does not help, please attach a complete log file.
Guest

Get including subfolders

First: thx a lot for that great tool! It works fine except a little problem I cannot manage.

I'm getting in trouble using mask and it seems that I got the exact opposite problem that other reported :roll:

Using a shell command, I just need to dowload all files of some type from a ftp folder, including its subfolders.
But I can't get the files located in the subfolders.

Acc. to the doc:
Path Mask
When the mask selects files and it makes sense to select them based on directory, you can extend the mask with a path mask. You should separate the path mask from the filename mask by a slash. For example mask /home/martinp/*.txt matches all text files within the directory. To match all text files within subtree, use mask /home/martinp/*.txt; /home/martinp/*/*.txt1).

I tried many configuration like this:
/command "option batch abort" "option confirm off" "option include /*/*.txt" "open ftp://myftp.com" "get -delete -resume -preservetime /data/* C:\temp\" "exit"

or that:
/command "option batch abort" "option confirm off" "option include */; *.txt" "open ftp://myftp.com" "get -delete -resume -preservetime /data/* C:\temp\" "exit"


Or without using the mask:
 /command "option batch abort" "option confirm off" "open ftp://myftp.com" "get /data/*/*.txt C:\temp\" "exit"

But I cannot get it working.

What I'm I doing wrong?
Thanks in advance