我需要按计划从特定目录移动文件。
文件需要移动到该目录下的文件夹中,该目录中的所有信息均由元数据分隔。我有一个可以手动运行的工作批处理,但无法使其与调度程序一起工作。
@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 运行所需的目录。
FOR %%f IN (*.xml)
到
FOR %%f IN ("C:\MYDIRECTORY\*.xml")