我正在运行backup.bat
脚本,并在以下命令中使用了该命令:
echo cd /public_html/GURUITSOFTWARESBACKUP>> ftpcmd.dat
我收到回复550
无法将目录更改为/ public_html / GURUITSOFTWARESBACKUP:没有此类文件或目录
如果以上路径不存在,我需要将路径更改为其他目录。
答案 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的作者)