中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教如何判断FTP服务器中文件夹是否存在!
作者:
标题: 请教如何判断FTP服务器中文件夹是否存在! 上一主题 | 下一主题
cguzh
新手上路





积分 12
发帖 5
注册 2009-1-5
状态 离线
『楼 主』:  请教如何判断FTP服务器中文件夹是否存在! 使用 LLM 解释/回答一下

我需要登录到一个FTP服务器上,上传文件。比如MPUT,BIN命令什么的都晓得。但有个问题是,我想FTP登录后先判断文件夹是否存在。我知道DOS中可以有命令直接判断本地的。比如 if not exist文件夹是否存在,但我登录到FTP 后这样写就不行了。
谢谢!


2010-7-12 11:36
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
wwbh
新手上路





积分 4
发帖 3
注册 2009-8-24
状态 离线
『第 2 楼』:   使用 LLM 解释/回答一下

http://www.dostips.com/DtTipsFtpBatchScript.php#Batch.FtpBatchUploadOnlyNewFiles
http://hi.baidu .com/wangbaohua3/blog/item/d347e20a503146e937d1220c.html
@Echo Off
Setlocal Enabledelayedexpansion

REM -- Define File Filter, i.e. files with extension .txt
Set FindStrArgs=/E /C:".txt"

REM -- Extract Ftp Script to create List of Files
Set "FtpCommand=ls"
Call:extractFileSection "" "-">"%temp%\%~n0.ftp"
Rem Notepad "%temp%\%~n0.ftp"

REM -- Execute Ftp Script, collect File Names
Set "FileList="
For /F "Delims=" %%A In ('"Ftp -v -i -s:"%temp%\%~n0.ftp"|Findstr %FindStrArgs%"') Do (
Call Set "FileList=%%FileList%% "%%A""
)

REM -- Extract Ftp Script to upload files that don't exist in remote folder
Set "FtpCommand=mput"
For %%A In (%FileList%) Do set "Exist=Y"
For /F "Delims=" %%A In ('"dir /b "%localdir%"|Findstr %FindStrArgs%"') Do (
If Not defined Exist Call Set "FtpCommand=%%FtpCommand%% "%%~A""
)
Call:extractFileSection "" "-">"%temp%\%~n0.ftp"
rem Notepad "%temp%\%~n0.ftp"

For %%A In (%FtpCommand%) Do Echo.%%A

REM -- Execute Ftp Script, download files
ftp -i -s:"%temp%\%~n0.ftp"
Del "%temp%\%~n0.ftp"
GOTO:EOF


:extractFileSection StartMark EndMark FileName -- extract a section of file that is defined by a start and end mark
:: -- StartMark - start mark, use '...:S' mark to allow variable substitution
:: -- EndMark - optional end mark, default is first empty line
:: -- FileName - optional source file, default is THIS file
:$created 20080219 :$changed 20100205 :$categories ReadFile
:$source http://www.dostips.com
SETLOCAL Disabledelayedexpansion
set "bmk=%~1"
set "emk=%~2"
set "src=%~3"
set "bExtr="
set "bSubs="
if "%src%"=="" set src=%~f0& rem if no source file then assume THIS file
for /f "tokens=1,* delims=]" %%A in ('find /n /v "" "%src%"') do (
if /i "%%B"=="%emk%" set "bExtr="&set "bSubs="
if defined bExtr if defined bSubs (call echo.%%B) ELSE (echo.%%B)
if /i "%%B"=="%bmk%" set "bExtr=Y"
if /i "%%B"=="%bmk%:S" set "bExtr=Y"&set "bSubs=Y"
)
EXIT /b


2010-9-4 21:02
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
etmanc
新手上路





积分 1
发帖 1
注册 2010-9-2
状态 离线
『第 3 楼』:   使用 LLM 解释/回答一下

谢了,楼主


2010-9-4 23:47
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: