[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理如何将文件上传至FTP文件夹内?

想把本地的一些指定文件上传至FTP文件夹内的当作备份

在论坛东拼西凑写了一个bat,可以在本地文件夹之间实现

想上传到FTP就失败了。

-----------------------------------------------------
FTP的IP地址是 192.168.0.235

没有账号和密码

目标文件路径是  192.168.0.235\SharedFile\

源文件路径是     G:\report


请问在下面的基础上怎么修改以实现上传至FTP的路径里


----------------------------------------------------------------
  1. @echo on
  2. :: 设置目标文件夹路径
  3. set "FolderTo=%FTP%"
  4. :: 设置源文件夹路径
  5. set "FolderFrom=G:\report"
  6. :: 获取当天日期
  7. for /f "delims=" %%a in ('reg query "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate') do (
  8.   set "RegDateOld=%%a"
  9. )
  10. set RegDateOld=%RegDateOld:~-8%
  11. reg add "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate /t REG_SZ /d yyyy-M-d /f>nul
  12. set Today=%date: =%
  13. reg add "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate /t REG_SZ /d %RegDateOld% /f>nul
  14. if "%Today:~0,1%" gtr "9" (
  15.   set Today=%Today:~-10%
  16. ) else (
  17.   set Today=%Today:~0,10%
  18. )
  19. echo,%Today%
  20. :: 在目标文件夹内执行命令
  21. pushd "%FolderTo%"
  22. :: 在目标文件夹内创建当前月份/当前日期文件夹
  23. mkdir %FolderTo%\%Today:~5,2%\%Today:~8,2%
  24. :: 在源文件夹内执行命令
  25. pushd "%FolderFrom%\%Today:~5,2%\%Today:~8,2%"
  26. :: 源文件内的当前月份/日期文件夹中用名称,格式,大小限制搜索文件
  27. for /f "delims=" %%i in ('dir /b /s /a-d *report*') do (
  28.     if %%~zi lss 20971520 (
  29. :: 将复制的文件移动到目标文件夹内的当前月份/日期文件夹内
  30.     copy /y "%%i" "%FolderTo%\%Today:~5,2%\%Today:~8,2%"
  31.     )
  32. )
  33. :: 1秒后关闭CMD窗口
  34. choice /t 1 /d n > nul
复制代码

回复 1# 半角杯


请在本论坛搜索关键字 FTP AND 上传
找几个例子看看就明白了
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 yakeyun 于 2021-12-26 13:58 编辑

FTP目标主机必定有用户名,这个需要加入。


192.168.0.235\SharedFile\

SharedFile  文件夹共享目录属于哪个分区要表明,比如它属于E分区的。就如下面写法:


@echo off
@cd /d "%~dp0"

net use * /del /y
::此处目标主机用户名为:Administrator
net use x: \\192.168.0.235\ipe$ "" /user:"admin"
cls

set today=%date:~0,4%-%date:~5,2%-%date:~8,2%
set tome=%time:~0,2%-%time:~3,2%-%time:~6,2%
@echo f | xcopy G:\report\test.jpg \\192.168.0.235\e\SharedFile\%today%_%tome%.jpg

net use * /del /y

pause


仅做参考,具体可以根据自己用途修改,如果单拷贝一个文件可以成功,后面再修改代码就可以批量操作。

TOP

回复 3# yakeyun


     谢谢解答。

TOP

回复 2# Batcher


    好的,谢谢

TOP

回复 3# yakeyun


    FTP支持匿名登录,命令行里面使用 ftp -A
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表