I need to connect to a host with username, password, implicit TLS encryption and port number to download files to a folder daily on windows server standard. Is there a third party command-line application that I could download, install and use for this (preferably free)? I'm not absolutely sure if this could be done with Windows ftp and if it can, could it be done in batch file?
I am trying NcFTP but I'm not sure if it supports encryption either.
I was given specific credentials, I have no control over the server. I have only instructions on how to access and download the files with FileZilla client over TLS. I need to schedule a routine that does this job for me since I don't want to manually do this every day. I can manage myself on this I only need a tool that could do this job over command-line.
You can use WinSCP, it supports both scripting and TLS/SSL.
See automating file transfers to FTP server.
A simple batch file to download files over an explicit TLS/SSL (note the ftpes://) with WinSCP looks like:
winscp.com /log=c:\path\ftp.log /command ^
"open ftpes://user:password#example.com/" ^
"get /home/user/* c:\destination\" ^
"exit"
You can have the batch file generated by WinSCP GUI for you.
For scheduling, simply use the Windows Scheduler.
For details see scheduling file transfers to FTP server.
(I'm the author of WinSCP)
Similarly for an upload: Schedule an automatic FTP upload on Windows with WinSCP
You can use sftp to get files. But you need to have an SSH server installed on remote host (OpenSSH is free).
Then you can use putty tools (free) psftp.exe or pscp.exe to upload/download files in encripted format.
Link for putty tools download: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Link for OpenSSH download: http://www.openssh.com/
Can somebody tell me how to create an ftp server using only cmd and also how to configure it using only cmd
The command prompt ftp in windows is a client ftp. You can't use it like a ftp server. You need an ftp server software. You can probably find one for free online.
I want to connect to the FTP server ftp://trmmopen.gsfc.nasa.gov/pub/merged/3B42RT from my command prompt in Windows 7.
It's always showing not connected.
I am running my PC behind proxy. I came to know about port error. Followed this solution here about port forwarding but still no result.
Windows built-in command-line ftp.exe client does not support connecting over a proxy. It also supports an active mode only, what makes it difficult to connect though proxy anyway (even if some transparent proxy solution is used).
You have to use a 3rd party command-line FTP client that supports a passive mode and a proxy.
For example with WinSCP FTP client, you can use the following batch file (.bat):
WinSCP.com /command ^
"open ftp://anonymous:dummy#trmmopen.gsfc.nasa.gov/ -rawsettings ProxyMethod=3 ProxyHost=proxy ProxyUsername=username ProxyPassword=password" ^
"cd /pub/merged/3B42RT" ^
"ls" ^
"exit"
See a guide to scripting with WinSCP and a guide for converting Windows FTP script to WinSCP script.
The above code is for an HTTP proxy. If you use a different proxy type, alter the ProxyMethod setting accordingly. See https://winscp.net/eng/docs/rawsettings
Though easier is to configure the connection in WinSCP GUI and then have it generate a script template for you.
(I'm the author of WinSCP)
I am using FileZilla (GUI) to download files from an FTP server. Can any one tell me a command line argument to download file from FTP server to local file system?
FileZilla does not have any command line arguments (nor any other way) that allow automatic transfer.
See:
FileZilla Client command-line arguments
https://trac.filezilla-project.org/ticket/2317
Though you can use any other FTP client that allows automation.
Built-it Windows ftp.exe (use its get command).
Though Windows ftp.exe does not support a passive mode, what makes it useless nowadays, when connecting over Internet due to ubiquitous firewalls and NATs.
WinSCP: You can automatically make it download a file both in GUI and scripting mode
GUI:
winscp.exe ftp://user:password#host/path/file.ext
You will get a dialog, where you select a directory to download the file to.
See https://winscp.net/eng/docs/commandline
Scripting (put the command to a .bat file):
winscp.com /command ^
"open ftp://user:password#host/" ^
"get /path/file.ext c:\" ^
"exit"
See https://winscp.net/eng/docs/guide_automation
The WinSCP can even generate a script from an imported FileZilla session.
For details, see a guide to FileZilla automation.
(I'm the author of WinSCP)
FileZilla does support some basic command line options for the upload and download of files. Not all options are documented.
You can download a file with the option "-d sourcefile targetdir"
Example (download):
filezilla.exe -d ftp://user:pass#ftp.myserver.com/folder/* "c:\downloads\" /overwrite /close
Example (upload):
filezilla.exe -u "c:\temp\samplefile.exe" ftp://user:pass#ftp.myserver.com/folder /overwrite /close
/close -- will close the GUI after the download/upload completes
/overwrite -- will overwrite the files in target without prompting the user
You can also connect to a site from the site manager e.g. --site="0/site1".
Below are reference sites with further examples including download links to FileZilla versions (2.32 / 3.1) that supported the feature.
FAQ Link
FileZilla Download link
I'm trying to write a batch script (CMD # Windows XP Pro) that will automatically download and unzip packages with the help of 7zip and putty/psftp
If I have a URL to a package to download http://somesite.org/packages/package.zip how do I download it on command line using putty?
Also if you have a better way to do this that would be helpful too.
wget is of course an obvious solution, but I also suggest to have a look at cURL. From their website:
curl is a command line tool for
transferring files with URL syntax,
supporting FTP, FTPS, HTTP, HTTPS,
SCP, SFTP, TFTP, TELNET, DICT, LDAP,
LDAPS and FILE. curl supports SSL
certificates, HTTP POST, HTTP PUT, FTP
uploading, HTTP form based upload,
proxies, cookies, user+password
authentication (Basic, Digest, NTLM,
Negotiate, kerberos...), file transfer
resume, proxy tunneling and a busload
of other useful tricks.
Of course free and open source, and despite its huge list of supported protocols it's as simple to use as wget, so to use your example
curl -O http://somesite.org/packages/package.zip
downloads package.zip to a local file with the same name
curl -o myname.zip http://somesite.org/packages/package.zip
downloads package.zip as myname.zip
curl http://somesite.org/packages/package.zip > package.zip
redirects curl's stdout to package.zip
EDIT - example corrected, with thanks to #PrabhakarKasi
win32 version of wget:
http://pages.interlog.com/~tcharron/wgetwin.html
Putty isn't really a download tool. Unless you want to download something via SCP/SFTP. So yes, wget is more helpful here.
I don't know putty, but certainly wget can do. If you are in Windows, you can get it by cygwin or just google a win32 version.
pscp.exe -pw yourpassword you#somesite.org:/packages/package.zip .\
The path to /packages/package.zip should be whatever the path to the public web files are on the server. So, for example, on some old apache server, it might be:
pscp.exe -pw yourpassword you#somesite.org:/users/httpd/vhosts/default/packages/package.zip .\
Use pscp, which comes with PuTTY:
pscp user#host:/path/to/file.7z .
7z e file.7z
If you set this up with SSH keys, pscp won't have to ask you for a password.