Batch file 将多个文件从文本移动到多个目标

Batch file 将多个文件从文本移动到多个目标,batch-file,Batch File,嗨,我正在尝试将多个文件移动到不同的目录。我还在txt文件中使用列表 在txt文件中我有 123 123_a 123_b 321 321_a 321_b 在一个单独的文件夹中,文件作为 123.txt 123_a.txt 123_b.txt 等等 我希望带a的文件名指向一个方向,带b的文件名指向另一个方向,而不带a或b的文件名指向其他方向。我知道如何使用排除列表,所以移动普通列表不是问题。它只是为了把文件搬到某个地方。我想我需要以某种方式使用IF或Stringsrc,但我一直无法得到它。我必须

嗨,我正在尝试将多个文件移动到不同的目录。我还在txt文件中使用列表

在txt文件中我有

123
123_a
123_b
321
321_a
321_b
在一个单独的文件夹中,文件作为 123.txt 123_a.txt 123_b.txt 等等

我希望带a的文件名指向一个方向,带b的文件名指向另一个方向,而不带a或b的文件名指向其他方向。我知道如何使用排除列表,所以移动普通列表不是问题。它只是为了把文件搬到某个地方。我想我需要以某种方式使用IF或Stringsrc,但我一直无法得到它。我必须在命令中使用%src_folder%,因为它是一个网络文件夹。并且此文件夹中只允许某些文件类型。 感谢您的帮助

我正在使用的简单复制命令,稍后我将使用令牌和delims:

for /f "tokens=*" %%i in (C:temp\test.txt) DO xcopy "%src_folder%\%%i.txt" "%dst_folder%"

这应该有一个基本的帮助:首先确保文件夹存在

@echo off
for /f "delims=" %%a in (list.txt) do (
   echo %%a|find /i "_a" >nul && move "*%%a*" "d:\folder1"
   echo %%a|find /i "_b" >nul && move "*%%a*" "d:\folder2"
   if exist "*%%a*" move "*%%a*" "d:\folder3"
)

看起来是我想要的。把它看了一遍,看起来不错。但它说找不到文件。我猜我把源文件夹放错位置了。让我澄清另一件事。list.txt中的列表引用的是其他文件(不是.txt)。假设它们是jpeg文件,在另一个文件夹中。这就是我所拥有的:对于/f“delims=“%%a in(list.txt)do(echo%%a | find/I“_a”>nul&&move“%%a.jpg”“%src_folder%”echo%%a | find/I”_b”>nul&&move“%%a.jpg”“%src_folder%”如果存在的话”%%a“move”%%a.jpg”“%dst folder文件夹已设置。我编辑了代码并添加了通配符-
list.txt
批处理文件
与所有文件一起放在
文件夹中。list.txt应该具有文件的唯一标识符。啊,我不能将batch和list.txt与文件放在同一个文件夹中。是否要设置源文件夹?您尚未解释为什么不。如果这是一个特殊的情况,那么明智的做法是在你的初始问题中包含细节。更新。它是一种多人使用的网络驱动器。此文件夹中只允许某些文件类型,否则将被删除。