批处理文件将每个编号的文件上载到不同的FTP文件夹

时间:2015-03-25 13:10:51

标签: batch-file file-upload upload ftp server

我需要编写一个批处理文件,通过FTP将两个文件上传到不同的文件夹。

示例:filename_0001.txt复制到server1上的folder1 filename_0002复制到server1上的folder2。

目标文件的名称是固定的。

我当前的批处理文件只上传第一个编号较小的文件 - 文件名中唯一的区别是数字,每天都会更改。

user name >>script.txt
%1 >>script.txt (password as parameter to batch file)
put filename_????.txt folder1
ftp -s:script.txt [server name]

如何上传更高号码的其他文件?我想到检查文件名然后把它们放在脚本中。任何人都可以告诉任何命令吗?

我需要这样的东西:

put filename_????+1.txt folder2

1 个答案:

答案 0 :(得分:0)

准备一个文本文件(folders.txt),其中包含要使用的已排序文件夹列表,例如:

folderA
folderB
folderC
folderD

从批处理文件中保存要上载到另一个文件(files.txt)的已排序文件列表。如问题Combining multiple text files into one中所述,将两个文件合并在一起。

代码如下:

@echo off
dir /ON /B filename_????.txt > files.txt

setlocal EnableDelayedExpansion

3< folders.txt (for /F "delims=" %%a in (files.txt) do (
   set /P FOLDER=<&3
   echo put %%a !FOLDER!
))

输出将如下:

put filename_4100.txt folderA
put filename_4101.txt folderB
put filename_4102.txt folderC
put filename_4103.txt folderD

当文件名中的位数不同时,它将无法正常工作,因为filename_10000.txt将在filename_9999.txt之前排序。有关可能的改进,请参阅Naturally Sort Files in Batch