当前位置:首页 » 文件传输 » ftp不覆盖
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

ftp不覆盖

发布时间: 2022-05-15 12:01:10

‘壹’ 由bat批处理做成的ftp自动下载,怎么才能不自动覆盖

。用其它软件建的FTP服务器我没用过,不清楚dir命令返回结果的的格式。有问题可以Hi。
大体的工作流程是这样。首先远程文件夹列表是空的,写入一行“/”(远程根文件夹)。然后开始循环。第n次循环,获取运程文件夹列表第n行文件夹内的子文件夹和文件的列表,处理获取的这个列表,把列表里的子文件夹加入远程文件夹列表,把列表里的文件下载下来。一直循环,直到最后远程文件夹列表第n行为空。

如果不需要保存文件夹结构,可以用 lanny119 的方法,用mget命令下载全部文件。

rem setlocal批处理中所作的环境更改只影响本批处理。前面加@的作用,不显示此行命令本身
@setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
rem 显示命令本身 关
@echo off
rem 填ftp服务器地址或域名
set ftpsvr=
rem 填用户名
set user=
rem 填密码
set pass=
rem 填保存备份的文件夹
set archdir=D:\backup
rem 填WinRAR安装文件夹,如:C:\Program Files\WinRAR
set rardir=
rem 把要使用的临时文件夹的路径设为环境变量mytemp
set mytemp=%temp%\ftp.x
rem 防止可能的同名文件夹或文件存在影响工作,全删一遍。>nul不显示回显 2>nul不显示错误信息
rd /s /q "%mytemp%">nul 2>nul
del /a /f "%mytemp%">nul 2>nul
md "%mytemp%"

rem 把一个斜杠写到%mytemp%\rdl里面。斜杠表示远程的根文件夹。rdl用作保存远程文件夹列表。
echo />"%mytemp%\rdl"
rem 已下载文件的远程文件夹计数
set dcount=0
rem 标号 cycle
:cycle
rem 获取远程文件夹内的文件和子文件夹列表。
rem 因为下面那个for要被执行多次,非第一次执行要跳过已处理的行,所以要写skip=n。
rem 但是,第一次执行时,写个skip=0出错。所以第一次执行时不写ship= 。
if %dcount%==0 set oo=
if not %dcount%==0 set oo=^ skip=%dcount%
rem 跳过指定的行数,每次从rdl文件中取一行赋给%%I。
for /f "tokens=*%oo%" %%I in (%mytemp%\rdl) do (
rem 为ftp准备命令文件(获取文件列表用)。第一行用的>替换ftpcmd文件的内容,>>追加。
echo open %ftpsvr%>"%mytemp%\ftpcmd"
echo %user%>>"%mytemp%\ftpcmd"
echo %pass%>>"%mytemp%\ftpcmd"
rem 写入的内容为更改远程工作目录为for语句取到的目录。
echo cd "%%I">>"%mytemp%\ftpcmd"
rem 写入的内容为获取远程工作目录里的文件和子文件夹列表,保存到dir文件。
echo dir -a "%mytemp%\dir">>"%mytemp%\ftpcmd"
echo bye>>"%mytemp%\ftpcmd"
rem 以指定命令文件的方式执行ftp语句。回显内容太多,不显示。
ftp -s:"%mytemp%\ftpcmd">nul

rem 下面是处理获取的dir文件及准备命令文件(下载文件用)。
echo open %ftpsvr%>"%mytemp%\ftpcmd"
echo %user%>>"%mytemp%\ftpcmd"
echo %pass%>>"%mytemp%\ftpcmd"
echo cd "%%I">>"%mytemp%\ftpcmd"
set ff=
rem 每次从dir文件中取一行的第三段和第三段后面所有的(tokens=3*)。
for /f "tokens=3*" %%K in (%mytemp%\dir) do (
rem 如果第三段等于<DIR>,是文件夹,加入rdl。<和>不加^为输入输出重定向符号。
rem %%L为第四段,如果还有更多部分,MN…类推。
if %%K==^<DIR^> echo %%I%%L/>>"%mytemp%\rdl"
rem 是文件,加入命令文件准备下载。
if not %%K==^<DIR^> (
echo recv "%%L">>"%mytemp%\ftpcmd"
rem 显示要下载的文件。
echo 下载 %%I%%L ···
set ff=1
)
)
rem 用环境变量的字符串替换功能把斜杠替换成Win的反斜杠。
set ss=%%I
set ss=!ss:/=\!
rem 在临时文件夹里建立对应文件夹。
md "%mytemp%\root!ss!"
rem !为环境变量延迟扩充符号,不在语句块被执行时扩充,而是延迟到本条语句被执行时扩充。
rem 有文件要下载才执行里面的。
if !ff!==1 (
echo bye>>"%mytemp%\ftpcmd"
rem 更改本地目录到对应文件夹。
cd /d "%mytemp%\root!ss!"
ftp -s:"%mytemp%\ftpcmd">nul
)
rem 处理完一个文件夹,计数加一。
set /a dcount=!dcount!+1
)
rem 前面for语句读入rdl并处理,在处理中rdl又可能有行被加入。
rem 如果计数没变化,说明rdl中没有要处理的行了,转到标号compress。
if "%dcount%"=="%lstdcount%" goto :compress
rem 没转走就记录计数,转到标号cycle。
set lstdcount=%dcount%
goto :cycle

:compress
echo 压缩已下载的文件···
rem 子命令a,添加文件到压缩文件。开关-ep1,压缩文件中文件不带源文件基本路径。
rem 开关-o+,覆盖开。开关-r,包含子文件夹。开关-agYYYYMMDD,日期作为存档文件名。
"%rardir%\rar.exe" a -ep1 -o+ -r -agYYYYMMDD "%archdir%\" "%mytemp%\root\*">nul
cd "%temp%"
rem 删除临时文件夹。
rd /s /q "%mytemp%"

本地WinXP简体中文,远程IIS,通过。
这样可以保存文件夹结构。不足是太复杂,不能下载隐藏文件。不知道有没有简单的方法及下载隐藏文件的方法。

‘贰’ ftp 上传同文件名的文件如何不被覆盖

换个目录传,或者选择同名文件不覆盖,这样的话你上传的文件会被改名字
无论如何,在同一个目录下都不可能存在同名文件的

‘叁’ 用surv-u架设的服务器,ftp无法覆盖原文件

文件夹的权限和serv-U里面的权限都要设置的,
如果还是不行的话 尽还是先删除文件 在上传文件吧 可能是你这个版本的Serv-U不支持吧

‘肆’ linux新建了一个用户,但是登录后ftp后无法覆盖文件

这个,这个,可不可以用"chown -R kevin /homenew/html/images/*" 命令把images文件夹下的所有文件和文件夹都设置为属于kevin的呢,这样的话肯定可以覆盖了。

如果要kevin和fjdl都可以上传文件的话,把kevin改成和fjdl一个组的,另外,在ls -l那个images目录时,通过chown把组权限也设置一下。

‘伍’ FTP文件不能覆盖,怎么解决!!

删掉搞上

‘陆’ ftp上面有个文件无法覆盖 上传失败 其他文件都没问题

你的ftp可能不稳定,不知道你用的是哪个网站的ftp,也可能是你用的ftp网站装有杀毒软件
你的珍藏版的东东可能绑有病毒一类的东东,或者绑定让杀毒软件敏感的词语,你换换ftp
或者检查下你珍藏版的东东,是否留有后门程序

‘柒’ 我用win7自带建的ftp,怎么能让用户能上传,下载文件(文件夹),但不能覆盖文件(文件夹)

1、在win7上使用ftp服务,需要先安装iis服务,打开 "控制面板",选择"程序" -> "打开或关闭Windows资源",在弹出的窗体里找到 “Internet信息服务”,展开后选择“Ftp服务器",然后点击"确定",此时Windows开始更新功能资源列表。

2、然后,自己在IIS管理器中添加FTP站点

在弹出的窗口,选择ftp共享目录即可。

‘捌’ FTP上传文件的问题,能不能让我传的文件不覆盖

建议用批量改名软件,然后自动上传即可

‘玖’ xp系统 自动的iis装的 ftp,我可以访问,也可以下载,但是我复制文件上传ftp之后,ftp上面的文件不能覆盖

我也遇见此问题,后来只能更改文件名。暂时还没解决办法,在文件名中加个空格

‘拾’ 我的FTP上传文件为什么没有覆盖原来的文件

一般有几种情况:
文件损失,不完整,导致传输过程验证失败。
文件使用中,比如在杀毒或者编辑中的文件,系统占用是不能传输的。
权限不足,比如针对某些用户,是不能传输部分文件的,比如exe等风险文件。
特殊情况,比如文件传输过程中,目录满了,存储失败,这个是由服务器管理员控制的,如果目录体积不够文件传输的,联系管理员协商解决。