Batch file 要从一个源复制到多个目标的批处理文件
我正在寻找批处理文件以完成以下任务:Batch file 要从一个源复制到多个目标的批处理文件,batch-file,file-io,Batch File,File Io,我正在寻找批处理文件以完成以下任务: Batch file可查看某个位置的文件夹和子文件夹(例如:\server1\main\及其子文件夹),并根据文件名的前3个字母将文件复制到与其名称对应的多个文件夹中 复制完成后,我想将原始文件/文件夹移动到存档目录 文件格式如下:AAA_xxx_xxx.jpg-文件名的前3个字母是我们关心的 例如: 文件\\server1\main\AAA\AAA\u xxx\u xxx.jpg将被复制到\\server2\Files\AAA\ 文件\\server1\
AAA_xxx_xxx.jpg
-文件名的前3个字母是我们关心的
例如:
- 文件
将被复制到\\server1\main\AAA\AAA\u xxx\u xxx.jpg
\\server2\Files\AAA\
- 文件
将被复制到\\server1\main\BBB\BBB\u xxx\u xxx.jpg
\\server2\Files\BBB\
@ECHO OFF
SETLOCAL
设置“sourcedir=U:\sourcedir\one”
设置“sourcedir2=U:\sourcedir\t w o”
设置“destdir=U:\destdir”
设置“targetdir=U:\targetdir”
对于(“%sourcedir%”“%sourcedir2%”中的%%d,请执行以下操作(
对于/f“tokens=1*delims=\%%a IN(
“dir/b/a-d”%%~d\*.*.jpg”
)做(
回显(MD“%destdir%\%%a\”
回显(复制/y“%%~d\%%a\%%b”“%destdir%%\%%a\”
回显(移动“%%~d\%%a\%%b”“%targetdir%%”
)
)
后藤:EOF
您需要更改sourcedir
、sourcedir2
、destdir
和targetdir
的设置以适应您的情况
所需的MD命令仅用于测试目的。ECHO
ed。验证命令正确后,将ECHO(MD
更改为MD
以实际创建目录。追加2>nul
以抑制错误消息(例如,当目录已存在时)
所需的移动命令仅用于测试。ECHO
在验证命令正确后,更改ECHO(MOVE
至MOVE
以实际移动文件。追加>nul
以抑制报告消息(例如1个文件已移动
)
所需的复制命令仅用于测试。ECHO
在验证命令正确后,将ECHO(COPY
更改为COPY
,以实际复制文件
哦-完成这项工作后,我发现我是一个重新格式化的受害者,这个问题有很多问题。哦,好吧-也许这会帮助其他人。你没有指定你正在使用的操作系统-听起来像Windows,但这不清楚-这很重要。另外,你尝试过什么吗?p.s.你如何确定是复制到服务器1还是服务r 2?假设
%filename%
等于AAA_xxx_xxx。jpg
-%filename:~0,3%
将因此等于AAA
。请仔细研究。我还建议您深入了解您是如何尝试实现这一目标的。@EdCottrell:“批处理文件”是一个常用于Windows批处理文件的术语(以前是MS-DOS批处理文件)。批处理文件字符串操作确实是这个问题的本质所在。除了@Unclesmeat的有用链接外,您还可以在这个网站上搜索有关该主题的现成解决方案。这里只有一个已解决的问题: