How FTP command do I use to tell a Dos Batch if a file exists or not on the server?

Hi,
I am looking for a few commands for FTP.
I know how to Get, Put, and Delete, on an FTP Server, but How do I "check" for the existence of a file on it?

Here is what I want to do, and have most of it. In theory:
FTP login
Ftp Check for File,
If exists on server:
-->  get file
-->   Run as400 (our midrange computer) command
-->   delete file
if not exist
 -->   tell user
quit

Any help appreciated :) Thanks.
Rj
RjCoatsComputer Programmer/TechnicianAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
QlemoConnect With a Mentor DeveloperCommented:
In FTP you cannot
- check for existence of files. A get on a non-existent file will create a empty file (0 bytes) with AS400 (this happens to me). That means you will have to (FTP) get the file, and (DOS) check its file size, then continue in FTP or send message.

ftp -s:getfile.ftp
for %%F in (theFile.xxx) do if %%~sF GTR 0 (
  ftp -s:doWhatever_and_Delete.ftp
) else (
  msg * File does not exist /t:5
)

Open in new window

0
 
RjCoatsComputer Programmer/TechnicianAuthor Commented:
If I want to do multiple commands in the "for do if" command, (where you have the ftp command to delete)
How is that done. This type of loop in a dos batch is new for me.
Thanks for your help so far. You have me headed the right way.
rj
0
 
QlemoDeveloperCommented:
Between the brackets pair of the IF, you can add as many (DOS) commands as you like.

if 1 GTR 2 (
   echo Do one
   echo Do another
) else (
   echo Do nothing
   echo repeat the same
)

0
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 
RjCoatsComputer Programmer/TechnicianAuthor Commented:
Thanks again, your gonna get some points outa me..
I have this command in my batch file...
FTP -n -i -d -s:jjorder.dat ftp.mydomain.com
Then my if this and that.
at the end of the ftp comman, the batch file just ends, it dont continue.

In the dat file I have
myusername
mypass
bin
get myfile.csv
quit

What am I doing wrong? I know when i execute another batch or exe file, i have to use call for it to come back.
Im kindof a novice at the command line FTP
Thanks again Olemo.
Rj
0
 
QlemoDeveloperCommented:
I cannot see any reason for this. Does it echo your batch and FTP commands?
0
 
RjCoatsComputer Programmer/TechnicianAuthor Commented:
CLS
CD\JJ ONLINE ORDERS
\util\choice GET NEW ORDERS NOW?
IF ERRORLEVEL 2 GOTO NOLOAD

ftp -n -i -d -s:jjorder1.dat ftp.mydomain.com
PAUSE    <---- IT GETS TO HERE AND ECHO'S THE FTP, I ACTUALLY DO GET IT.
                          I HIT ENTER ON THE PAUSE, AND IT QUITS ON ME.

for %%F in JJORD.CSV do if %%~sF GTR 0 (
pause
@echo GOT NEW ORDERS
PAUSE
ftp  -n -i -d -s:jjorder2.dat ftp.MYdomain.com
PAUSe
@ECHO DELETED FILE
PAUSE
)
else (
@ECHO NO ORDERS ON WEB
PAUSE
 )

:NOLOAD
PAUSE
0
 
QlemoDeveloperCommented:
Syntax error in the FOR. Use:

for %%F in (JJORD.CSV) do if %%~sF GTR 0 (
0
 
RjCoatsComputer Programmer/TechnicianAuthor Commented:
WOOPS. one thing I did wrong, now it appears to work better, let me put those parenthisis back around the file name.
I thought it was an "example" but its part of the syntax.

0
 
RjCoatsComputer Programmer/TechnicianAuthor Commented:
very good if I'd follow the instrcutions :) Thanks Olemo
0
All Courses

From novice to tech pro — start learning today.