我正在寻找批处理文件来完成以下任务:
批处理文件查看某个位置的文件夹和子文件夹(例如:\ server1 \ main \及其子文件夹),并根据文件名称的前3个字母将文件复制到多个与其姓名对应的文件夹。
复制完成后,我想将原始文件/文件夹移动到存档目录。
文件格式如下:AAA_xxx_xxx.jpg
- 文件名的前3个字母是我们关心的。
示例:
\\server1\main\AAA\AAA_xxx_xxx.jpg
将被复制到\\server2\files\AAA\
\\server1\main\BBB\BBB_xxx_xxx.jpg
将被复制到\\server2\files\BBB\
答案 0 :(得分:0)
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir\one"
SET "sourcedir2=U:\sourcedir\t w o"
SET "destdir=U:\destdir"
SET "targetdir=U:\targetdir"
FOR %%d IN ("%sourcedir%" "%sourcedir2%") DO (
FOR /f "tokens=1*delims=_" %%a IN (
'dir /b /a-d "%%~d\*_*.jpg" '
) DO (
ECHO(MD "%destdir%\%%a\"
ECHO(COPY /y "%%~d\%%a_%%b" "%destdir%\%%a\"
ECHO(MOVE "%%~d\%%a_%%b" "%targetdir%\"
)
)
GOTO :EOF
您需要更改sourcedir
,sourcedir2
,destdir
和targetdir
的设置以适应您的具体情况。
所需的MD命令仅用于ECHO
用于测试目的。 在您确认命令正确之后,将ECHO(MD
更改为MD
以实际创建目录。附加2>nul
以禁止错误消息(例如,当目录已存在时)
为了测试目的,所需的MOVE命令仅为ECHO
。 在您确认命令正确后,将ECHO(MOVE
更改为MOVE
以实际移动文件。附加>nul
以取消报告消息(例如1 file moved
)
为了测试目的,所需的COPY命令仅为ECHO
。 在您确认命令正确后,将ECHO(COPY
更改为COPY
以实际复制文件。
哦 - 做完这项工作后,我发现我是重新格式化的受害者,这个问题有胡须。哦,好吧 - 也许它会帮助别人。