我需要编写一个批处理文件,通过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
答案 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