ftp echo批处理命令,想要用for循环传递多个文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ftp echo批处理命令,想要用for循环传递多个文件相关的知识,希望对你有一定的参考价值。

ftp echo批处理命令,想要用for循环传递多个文件!有的时候要传递很多个文件,想用ftp批处理命令来做,一般都会有很多个文件,但是呢这些文件一般都放在不同的目录下面,如果写死那些目录的话,感觉每次都要改脚本太麻烦了!想知道能不能用for循环的方式,每次传递一个文件,并且文件的路径存在一个txt文件里面,每次从txt文件里面取出文件路径,用%%i,%%j,%%k的方式来表示,从而实现自动转换目录去替换文件!
如果上面那个能实现的话,还想更进一步
应该要上传的一般都分成了两类,.js的文件和.class的文件两种,两种的主目录不同,比如:.js的放在/was/js/下面,.class的放在/was/class/下面,然后每个不同的js,class文件的路面也都不一样,这种怎么来实现呢,可不可以使用组合的方式啊,就是用%%i来记录/was/js/,%%j来记录/common/app/这个目录,来组合成最终的目录/was/js/common/app/,而且可不可以通过弄个标示的方式来区分.js文件跟.class文件呢,用if命令来区分,如果是js文件,就令%%i=/was/js/,如果是class文件,就令%%i=/was/class/,这样能不能实现额,会不会太麻烦呢!谢谢了!

你用dir把所有文件的路径保存成txt
然后for读取txt里面的内容,取出文件路径,判断文件路径中包含js或者class等字串,传到相应的目录里面。追问

额!具体是怎么弄的呢!用dir来是列出远程机器上的目录的吧!比如,我现在要上传10个文件,每个文件的路径都不同,我用一个txt文件把这10个文件的路径和文件名存储起来,之后是不是说就是for读取这路径到%%i里面,文件名到%%j里面,之后就cd %%i, send %%j额!!!!这样可以吗!
---还有就是后面说的那种文件的路径由两个变量组合的,是不是可以这样cd %%i%%j, 之后就send %%k额!

追答

dir也可以列出本地的啊。还有列出来的文件有扩展信息啊,比如%~pi这样仅扩展到一个路径,扩展有很多用法,具体查看for的帮助。你那样也可以啊,反正本地目录跟远程目录对应就好了

追问

额!这样的啊,还有额,想问下呢,就是我试验了一下 cd %i%%j%, 这样写不行呢,得到的是一个控制,但是我单纯用
@echo off
set "a=/was"
set "b=/0523"
echo cd %a%%b%
pause
---这样输出的是/was/0523,
但是我这样写
root
root
set "i=/was"
set "j=/0523"
cd %i%%j%
pwd
lcd C:/新建文件夹/11
bin
put test.rar
pause
quit
就不行了,cd的是一个空值,是写错了

追答

你那个set引号放错位置了吧,接下去cd i=/wasj=/0523这样就跟着错了

追问

set i=“/was"
set j=”/0523"

这样也不对啊!那应该怎么改额,谢谢了!

追答

ftp里面好像没有像dos里的用法,不好意思,我也回答不了。

参考技术A @echo off
set jspath=c:\was\js\common\app
set classpath=c:\was\class\common\app

(
echo **//ftp账号**//
echo **//ftp密码**//
echo bin
echo cd /js
echo lc %jspath%)>>script.txt
for /f "delims=" %%i in ('dir /b %jspath%\*.*) do (echo put "%%i">>script.txt)
echo cd /class>>script.txt
echo lc %classpath%>>script.txt
for /f "delims=" %%i in ('dir /b %classpath%\*.*) do (echo put "%%i">>script.txt)
echo bye>>script.txt

ftp -S:script.txt **//Ftp主机名或IP地址**//
del script.txt
把上面有**// **//标记的地方替换为你所要的字符.
这可以把 c:\was\js\common\app 和 c:\was\class\common\app 下面所有的文件传送到Ftp服务器根目录的JS 和 Class文件夹.追问

额,如果只是这么两个目录倒是好办的,就是会有很多文件,分别在很多个不同的目录下面的

追答

只要把你需要备份的所有目录都罗列出来就好了, 相信你应该看懂上面的格式了, 第一次整理路径会比较麻烦, 做一次折后就好了.

本回答被提问者和网友采纳

以上是关于ftp echo批处理命令,想要用for循环传递多个文件的主要内容,如果未能解决你的问题,请参考以下文章

bat命令中啥命令可以让某一行的指令重复执行

for循环语句_基础

8脚本颜色显示(看命令echo更全)和util循环和for循环中级用法

bat命令执行循环判断功能2

单行命令循环打印输出脚本

Windows 批处理:在 FOR 循环中调用多个命令?