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

时间:2020-09-25 01:40:10

标签: batch-file ftp

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

echo cd /public_html/GURUITSOFTWARESBACKUP>> ftpcmd.dat

我收到回复550

无法将目录更改为/ public_html / GURUITSOFTWARESBACKUP:没有此类文件或目录

如果以上路径不存在,我需要将路径更改为其他目录。

1 个答案:

答案 0 :(得分:1)

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

您最好使用一些第三方FTP客户端。但是即使那样,在批处理文件中进行任何条件处理也不容易,除非您找到内置了真实脚本的FTP客户端(我不知道有任何脚本)。使用与批处理文件不同的脚本语言是更好的选择。

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

@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文章Checking file existence


article also shows如何使用WinSCP .NET assembly from a PowerShell script检查[文件/目录]是否存在。那就是我的建议。

(我是WinSCP的作者)

相关问题