使用批处理脚本递归移动文件夹,并将超过六天的文件移动到子文件夹

时间:2017-03-08 23:44:13

标签: batch-file cmd robocopy

所以,我有一个像这样的大文件树

\ FOO \ foo1 \ FOO \文件\档案

\ FOO \ foo2的\ FOO \文件\档案

\ FOO \ foo3 \ FOO \文件\档案

\ FOO \ foo4 \ FOO \文件\档案

我的目标是能够遍历每个" \文件"文件夹,并将该文件夹中的文件移动到" \ archive"文件夹,如果他们超过6天

理想情况下,.bat脚本最好。我是一个真正的新手,当谈到这种东西,通常只是使用robocopy来执行这些类型的任务,但由于文件结构是如此密集,编写50多行代码来做到这一点似乎是漫长的过程。

我需要能够深入到16个文件夹,每个文件夹包含另外7个包含目标文件和存档位置的文件夹,然后确定目标文件是否超过最大年龄并将它们移动到一个存在于其中的子目录中目标位置超过最大年龄。

2 个答案:

答案 0 :(得分:0)

for /f "delims= " %%t in ('robocopy . . /njh /njs')do set "Tab=%%t"
pushd D:\
for /d /r %%i in (archive.?)do ( 
  pushD %%i
  for /f "Tokens=3 delims=%tab%" %%n in ('robocopy /L .. %%~ni /minage:6 
  ')do echo move ..\%%n
  popD
)
popD

答案 1 :(得分:0)

如果我理解正确,您可以尝试以下代码段:

_get_rif

使用 def _get_rif(self, cr, uid, vat, url1, url2, context=None): """ Partner information transforms XML to string and returns. """ if context is None: context = {} xml_data = self._load_url(3, url1 % vat) if not self._eval_seniat_data(xml_data, vat, context=context): dom = parseString(xml_data) return self._parse_dom(cr, uid, dom, vat, url2, context=context) 命令代替@echo off setlocal EnableExtensions DisableDelayedExpansion rem // Define constants here: set "_ROOT=D:\" set "_SRC=files" set "_DST=archive" set /A "_AGE=7" for /D %%A in ("%_ROOT%\*") do ( for /D %%B in ("%%~A\*") do ( for /D %%C in ("%%~B\*") do ( robocopy "%%~C\%_SRC%" "%%~C\%_SRC%\%_DST%" "*.*" /MOV /IS /MINAGE:%_AGE% ) ) ) endlocal exit /B

可以实现同样的目的
forfiles