实现FTP整站上传的批处理代码,ftp上传批处理代码


@echo off
rem 设置FTP服务器地址
set ftpIP=192.168.0.2
rem 设置FTP用户名
set ftpUser=MyUser
rem 设置FTP密码
set ftpPass=MyPass
rem 设置待上传的本地文件夹目录
set UpFolder=C:/test

rem 生成待上传的本地文件夹列表
type nul>%temp%/FolderList.txt
for /r "%UpFolder%" %%a in (.) do (
  set FullName=%%a
  setlocal enabledelayedexpansion
  set FolderName=!FullName:%UpFolder%=!
  set FolderName=!FolderName:~1,-2!
  echo,!FolderName!>>%temp%/FolderList.txt
  endlocal
)
>"%temp%/ftpFile.txt" echo,%ftpUser%
>>"%temp%/ftpFile.txt" echo,%ftpPass%
>>"%temp%/ftpFile.txt" echo bin
>>"%temp%/ftpFile.txt" (
  for /f "usebackq tokens=*" %%a in ("%temp%/FolderList.txt") do (
    echo cd /
    echo mkdir "%%a"
    echo cd "/%%a"
    echo mput "%UpFolder%/%%a/*.*"
  )
)
>>"%temp%/ftpFile.txt" echo ! rd /s /q "%UpFolder%"
>>"%temp%/ftpFile.txt" echo ! md "%UpFolder%"
>>"%temp%/ftpFile.txt" echo bye
ftp -v -i -s:"%temp%/ftpFile.txt" %ftpIP%

想做一个批处理 将指定文件用FTP上传

我试了一下,终于知道楼主少写了什么。
调用的时候FTP要加 -i 选项(取消交互性提示)。即批处理中用如下调用方式:
ftp -i -s:ftp.txt

-i Turns off interactive prompting during multiple file transfers.

ftp.txt内容为:
open 127.0.0.1
11
11
put c:\1.txt
bye

楼主试试吧,应该能解决。
去掉-i参数,批处理就会一直循环。

其实用VBS脚本也可以啊,用sendkeys发送FTP命令,比较简单。
——————————————————————————————
你的 ftp.txt 与 批处理文件 是放在同一个目录下吗??
我已经试过OK的。

算了,给你个完整版吧,也不用什么txt文件了。
直接将下面的代码保存为 test.bat 运行:

@echo off
color 0a
title FTP自动下载
if exist "%temp%\ftpfile" del "%temp%\ftpfile"
echo open 127.0.0.1>"%temp%\ftpfile"
echo 11>>"%temp%\ftpfile"
echo 11>>"%temp%\ftpfile"
echo put c:\1.txt>>"%temp%\ftpfile"
echo bye>>"%temp%\ftpfile"
ftp -i -s:"%temp%\ftpfile"
::del "%temp%\ftpfile"
exit

里面的ip地址,用户名,密码,put的文件路径等,自己修改吧。
 

自动上传某文件进入FTP服务器的批处理命令怎写

rem -----------脚本开始---------------
@echo off

set ftpfile=putfiles.ftp
set logfile=putfiles.log

echo open 192.168.0.1 > "%ftpfile%"

rem 把下面行中的 username和password改为你的用户名和密码
echo user username password >> "%ftpfile%"
rem ------------------------------

echo bin >> "%ftpfile%"

rem 进入FTP server 中的"X"目录
echo cd X >> "%ftpfile%"
rem ------------------------------
rem 进入本地C盘根目录
echo lcd c:\ >> "%ftpfile%"
rem ------------------------------

echo put A.TXT >> "%ftpfile%"

echo quit >> "%ftpfile%"
echo -------------------------------- >> "%logfile%"
date /t >> "%logfile%"
time /t >> "%logfile%"
echo -------------------------------- >> "%logfile%"
ftp -n < "%ftpfile%" >> "%logfile%"
del "%ftpfile%"

@echo on
rem -----------脚本结束---------------

在Windows XP(本地),Ubuntu(FTP Server) 测试通过。
 

评论关闭