Batch file FTP检查服务器上是否存在目录

Batch file FTP检查服务器上是否存在目录,batch-file,ftp,Batch File,Ftp,我正在运行backup.bat脚本并使用以下命令: echo cd /public_html/GURUITSOFTWARESBACKUP>> ftpcmd.dat 我得到的答复是550 无法将目录更改为/public\u html/GURUITSOFTWARESBACKUP:没有这样的文件或目录 如果上面的路径不存在,我需要更改到其他目录的路径。对于批处理文件和Windows内置ftp,这几乎是不可行的 你最好使用一些第三方FTP客户端。但即便如此,在批处理文件中执行任何条件处理都

我正在运行backup.bat脚本并使用以下命令:

echo cd /public_html/GURUITSOFTWARESBACKUP>> ftpcmd.dat
我得到的答复是550

无法将目录更改为/public\u html/GURUITSOFTWARESBACKUP:没有这样的文件或目录


如果上面的路径不存在,我需要更改到其他目录的路径。

对于批处理文件和Windows内置ftp,这几乎是不可行的

你最好使用一些第三方FTP客户端。但即便如此,在批处理文件中执行任何条件处理都不是一件容易的事,除非您找到一个FTP客户机,它内置了真正的脚本,我不知道有什么。使用与批处理文件不同的脚本语言将是更好的选择

无论如何,如果使用,可以执行以下操作:

@echo off
 
set SESSION=ftp://username:password@example.com/
set REMOTE_PATH=/path/one
set REMOTE_PATH2=/path/two
winscp.com /command ^
    "open %SESSION%" ^
    "stat %REMOTE_PATH%" ^
    "exit"
 
echo %ERRORLEVEL%
if %ERRORLEVEL% equ 0 (
    echo Directory %REMOTE_PATH% exists, will use it
) else (
    echo Error or directory %REMOTE_PATH% not exists, will use %REMOTE_PATH2%
    set REMOTE_PATH=%REMOTE_PATH2%
)

echo Doing something with %REMOTE_PATH%
winscp.com /command ^
    "open %SESSION%" ^
    "cd %REMOTE_PATH%" ^
    "ls" ^
    "exit"
这是基于WinSCP的文章

如何使用检查[file/directory]是否存在。这是我的建议

我是WinSCP的作者