我需要批处理文件的帮助,该文件可以将文件从c:\ SaveAttachments重命名并将其移动到C:\ Users \ Omer \ Documents \中的多个文件夹中
我在c:\ SaveAttachments(.pdf,.doc,.xls)中有大约5000个文件
例如(aacom_880072_4860914.pdf或.doc或.xls)例如(bbcom_880082_4860914.pdf或.doc或.xls)
将aacom_ 880072 _4860914重命名为880072并将其移动到C:\ Users \ Omer \ Documents \ aacom
将bbcom_ 880082 _4860914重命名为880082并将其移动到C:\ Users \ Omer \ Documents \ bbcom
非常感谢您对此的帮助。我希望我提供了足够的信息以查看这是否可行。
仅供参考,我是编写批处理文件的初学者,因此非常感谢您对代码的评论。
@ECHO Off
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET "destdir=U:\destdir"
set "logfile=U:\logfile.log"
PUSHD "%sourcedir%
>>"%logfile%" echo start at %date% %time%
FOR %%x IN (pdf doc xls) DO (
FOR /f "delims=" %%a IN (
'dir /b /a-d "*_*_*.%%x" '
) DO (
FOR /f "tokens=1,2*delims=_" %%m IN ("%%a") DO IF "%%n" neq "" (
ECHO(MD "%destdir%\%%m"
>>"%logfile%" ECHO(MD "%destdir%\%%m"
ECHO(Move "%%a" "%destdir%\%%m\%%n.%%x"
>>"%logfile%" ECHO(Move "%%a" "%destdir%\%%m\%%n.%%x"
)
)
)
POPD
>>"%logfile%" echo end at %date% %time%
GOTO :EOF
您将需要更改的设置sourcedir
并destdir
适合您的情况。
所需的MD命令仅ECHO
用于测试目的。验证命令正确无误后,请更改ECHO(MD
为,MD
以实际创建目录。附加2>nul
以禁止显示错误消息(例如,当目录已存在时)
所需的MOVE命令仅ECHO
用于测试目的。验证命令正确无误后,请更改ECHO(MOVE
为,MOVE
以实际移动文件。附加>nul
以禁止显示报告消息(例如1 file moved
)
切换到源目录
对于所需的扩展名,请执行目录扫描以查找带有至少2个下划线和扩展名的文件。
将名称标记为%%m
并%%n
(带括号-确保%%n
不为空)
创建目录并移动文件。
[根据要求进行编辑以包括日志记录] [修订的编辑:省略%
并包含引号]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句