Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理文件,将每个编号的文件上载到不同的FTP文件夹_Batch File_File Upload_Upload_Ftp_Server - Fatal编程技术网

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

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

我需要编写一个批处理文件,通过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
准备一个文本文件(
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