使用 XML 数据批量移动文件

问题描述 投票:0回答:1

我需要按计划从特定目录移动文件。

文件需要移动到该目录下的文件夹中,该目录中的所有信息均由元数据分隔。我有一个可以手动运行的工作批处理,但无法使其与调度程序一起工作。

@ECHO OFF
SETLOCAL EnableDelayedExpansion
FOR %%f IN (*.xml) DO (

 (SET destdir=)
 (SET checker=**mydata**)
 (SET fileName=%%f)

 FOR /f "tokens=3 delims=<>" %%i IN (
   'find "<**mydata**>" ^<"%%f"'
   ) DO SET destdir=%%i

 IF NOT DEFINED destdir (
     FOR /f "tokens=3 delims=<>" %%i IN (
       'find "<**mydata**>" ^<"%%f"'
       ) DO SET destdir=%%i
       IF DEFINED destdir (
            IF !destdir! == !checker! (
            
                FOR /f "tokens=4 delims=<>" %%i IN (
                   'find "</**mydata**>" ^<"%%f"'
                   ) DO SET destdir=%%i
                )
            )
        )
    CALL :moveme %%f
    )
)
GOTO :eof

:moveme
set directoryUp=%destdir: =%
set mydate=%date:~4%
set mytime=%time::=%
set mytimestamp=!mydate:/=!!mytime:.=!

MD "ArchivedByOOID\%directoryUp%" 2>NUL

IF EXIST "%~dp0ArchivedBy**MyData**\%directoryUp%\%fileName%" (
        MOVE "%fileName%" "%~dp0ArchivedBy**MyData**\%directoryUp%\%mytimestamp%_%fileName%"
) else (
        MOVE "%fileName%" "%~dp0ArchivedBy**MyData**\%directoryUp%" )
GOTO :eof

batch-file movefile
1个回答
0
投票

修改以下内容以直接指定。这允许 BATCH 运行所需的目录。

FOR %%f IN (*.xml)

FOR %%f IN ("C:\MYDIRECTORY\*.xml")

© www.soinside.com 2019 - 2024. All rights reserved.