Get file from FTP server and copy it to UNC directory -


i trying copy csv file ftp server unc file path. had working ftp local path, better project have copy unc path. must achieved in batch , ftp commands.

this code far:

for /f "delims=" %%x in (config.bat) (set "%%x") echo start[%time%] >> "%primefolder%\timerun.log" rem -------------------------------------------------------------------------------------------- rem  import .csv ftp server - csv imported local directory rem         ftpcmd.txt connects ftp server , copies .csv file local directory rem -------------------------------------------------------------------------------------------- echo open %ftpip%> %primefolder%\ftpcmd.txt echo %ftpusername%>> %primefolder%\ftpcmd.txt echo %ftppassword%>> %primefolder%\ftpcmd.txt echo cd %ftpprimary%>> %primefolder%\ftpcmd.txt echo binary>> %primefolder%\ftpcmd.txt echo lcd /d "%offload%" >> %primefolder%\ftpcmd.txt echo mget %filename%>> %primefolder%\ftpcmd.txt echo disconnect>> %primefolder%\ftpcmd.txt echo quit>> %primefolder%\ftpcmd.txt rem ----------------------------------------------------------------------------------------------------------------------------- rem  call , execute ftp command text document (ftpcmd.txt) rem         code calls file establishes connection , copies file local directory    rem         dynamic ftp command file created , populated. rem ----------------------------------------------------------------------------------------------------------------------------- ftp -i -s:"%primefolder%\ftpcmd.txt" >"%primefolder%\logs\ftpinport.log" 2>>"%primefolder%\logs\ftperr.log" echo[%date% - %time%] >> "%primefolder%\logs\ftpinport.log"  ftp -i -d -s:%primefolder%\ftpcmd.txt /f "tokens=*" %%a in (%primefolder%\logs\ftperr.log) (echo [%date% - %time%]  [error level: 1][issue location:ftp][error:%%a] >> "%primefolder%\logs\error.log") 

this config file:

primefolder=c:\scripts ftpip=111.11.1.1 ftpusername=user ftppassword=test filename=user.csv ftpprimary=\csv\ ftparchive=\csv\archive offload=\\test.org\test_this\implementation\new projects\new\interface 

thank ahead of time!


after changing mget get suggested in an answer @martin prikryl, getting error:

r:i/o error

this ftp output:

ftp> open 111.11.1.1 connected 111.11.1.1. 220 welcome code-crafters ability ftp server. user (111.11.1.1:(none)):  331 please send pass now.  230-welcome "user". 230-there 1 of 100 users logged onto server. 230-there 1 users logged onto account. 230-you have unlimited kb of account allocation left. 230-you have 0 transfer credits remaining. 230-you lose 0 credits per kb downloaded. 230-you lose 0 credits per kb uploaded. 230 in directory "/". ftp> cd \csv\ 250 "/csv" current directory. ftp> binary 200 type set 'i' (image). ftp> user.csv \\test.org\test_this\implementation\new projects\new\interface\user.csv  200 port command successful. 150 data connection established, beginning transfer. 226 transfer complete. ftp: 1277532 bytes received in 2.64seconds 483.91kbytes/sec. ftp> disconnect 221 visiting. ftp> quit 

when redirecting error , output of ftp 1 file output:

 ftp> open 111.11.1.1     connected 111.11.1.1     220 welcome code-crafters ability ftp server.     user (111.11.1.1:(none)):      331 please send pass now.      230-welcome "user".     230-there 2 of 100 users logged onto server.     230-there 1 users logged onto account.     230-you have unlimited kb of account allocation left.     230-you have 0 transfer credits remaining.     230-you lose 0 credits per kb downloaded.     230-you lose 0 credits per kb uploaded.     230 in directory "/".     ftp> cd \csv\     250 "/csv" current directory.     ftp> binary     200 type set 'i' (image).     ftp> user.csv \\test.org\test_this\implementation\new projects\new\interface\user.csv       200 port command successful.     150 data connection established, beginning transfer.     > r:i/o error     226 transfer complete.     ftp: 1277532 bytes received in 2.84seconds 449.20kbytes/sec.     ftp> disconnect     221 visiting.     ftp> quit 

unc path cannot working directory in windows.

so lcd \\example.com\share won't work.

the mget command not allow specify target path.

but not seem need mget, not using wildcard, downloading specific file.

so can use get command instead, allows specify target path.

echo %filename% "%offload%\%filename%" >> %primefolder%\ftpcmd.txt 

also note %offload% path contains space (new projects) need enclose path double-quotes.

and remove

echo lcd /d "%offload%" >> %primefolder%\ftpcmd.txt 

side note: there's no /d switch ftp lcd command (there no switches in windows ftp.exe whatsoever).


had need use wildcard, have use different ftp client.

for example winscp scripting can use:

winscp.com /log=winscp.log /command ^     "open ftp://%ftpusername%:%ftppassword%@%ftpip%/" ^     "cd %ftpprimary%" ^     "get %filename% %offload%\" ^     "exit" > "%primefolder%\logs\ftpinport.log"  

note winscp get command supports wildcards , allows specify target path @ same time. winscp defaults binary transfer mode.

references:

(i'm author of winscp)


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -

How to provide Authorization & Authentication using Asp.net, C#? -