我需要使用批处理文件按 XML 的内容和/或文件名组织 xml 文件。
如果文件名以 History 开头,那么我需要阅读文档末尾的字段以获取项目代码。
所有其他文件将以项目代码开头,并以破折号“-”分隔。这个文件我需要通过名称上的项目代码移动。
文件名以历史或项目代码开头。
History_01102023.xml (<ITEMCODE>I586CS</ITEMCODE>)
History_11122022.xml (<ITEMCODE>XDSH0YE87EN</ITEMCODE>)
I586CS-active.xml
I586CS-disabled.xml
XSO0GSOE-active.xml
XDSH0YE87EN-active.xml
我需要把它们如下:
I586CS\I586CS-active.xml
I586CS\I586CS-disabled.xml
I586CS\History_01102023.xml
XSO0GSOE\XSO0GSOE-active.xml
XDSH0YE87EN\History_11122022.xml
XDSH0YE87EN\XDSH0YE87EN-active.xml
我可以将历史文件移动到单个文件夹中,但我似乎无法按内容移动文件并按名称移动到文件夹
@ECHO OFF
SETLOCAL
FOR %%f IN (*.xml) DO (
(SET destdir=)
FOR /f "tokens=2delims=<>" %%i IN (
'find "</ItemCode>" ^<%%f'
) DO SET destdir=%%i
IF DEFINED destdir CALL :moveme %%f
)
GOTO :eof
:moveme
ECHO MD c:\docs\%destdir% 2>NUL
ECHO MOVE %1 c:\docs\%destdir%\
GOTO :eof