Batch file 批处理文件,将每个编号的文件上载到不同的FTP文件夹
我需要编写一个批处理文件,通过FTP将两个文件上载到不同的文件夹 示例:filename_0001.txt复制到server1上的folder1 filename_0002复制到server1上的folder2 目标文件的名称是固定的 我当前的批处理文件只上载编号较低的第一个文件-文件名的唯一区别是编号,每天都会更改Batch file 批处理文件,将每个编号的文件上载到不同的FTP文件夹,batch-file,file-upload,upload,ftp,server,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) p
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
准备一个文本文件(folders.txt
),其中包含要使用的文件夹的排序列表,如:
folderA
folderB
folderC
folderD
从批处理文件中保存要上载到另一个文件的已排序文件列表(files.txt
)。如上文所述,将两个文件合并在一起
代码如下所示:
@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!
))
当文件名中的位数不同时,它将不起作用,因为
filename\u 10000.txt
将在filename\u 9999.txt
之前排序。有关可能的改进,请参见,您的意见是什么?你得到一个文件名,比如filename_0001.txt
作为脚本的输入(比如命令行参数?),你需要“计算”另一个名称?我已经编辑了这个问题,也许现在我想做的事情更清楚了。所以文件夹中总是(只有)两个文件。文件名中的数字每次都不同。您需要将编号较低的文件(无论是什么)上载到server1/folder1
,将编号较高的文件上载到server2/folder2
。对吗?差不多对了。只有一台服务器,而不是2台,有时只有一个文件,有时甚至三个。因此批处理文件应该这样做:put filename\u 0001.txt server1/folder1 put filename\u 0002.txt server1/folder2 put filename\u 0003.txt server1/folder3它是folder1
,folder2
,folder3
还是文件夹名称中的数字以某种方式从文件号派生而来?
put filename_4100.txt folderA
put filename_4101.txt folderB
put filename_4102.txt folderC
put filename_4103.txt folderD