批量编程,将多个文件从多个文件夹复制到一个按日期排序的文件夹

时间:2018-08-13 12:06:26

标签: batch-file

我目前正在尝试进行一个小批量工作,该工作能够将PDF和TXT文件从“几个文件夹”复制到一个按日期MM-YYYY排序的文件夹。

我已经有一些代码在工作,但仍未完成,我目前停留在多个文件夹上并添加TXT。

spring.profiles = production // remove it to fix

这工作正常(名称中的空格除外,但我很棒,我会发现dos文件名存在问题)。但是我也要在几个文件夹中搜索什么。

就像。

set "source=c:\Program Files (x86)\Temp1"  
set "target=c:\Temp2"  
for %%i in (%source%\*.pdf) do @for /f "tokens=1,2,3 delims=/ " %%A in 
("%%~ti") do (
    if not exist "%target%\%%C\%%B" mkdir "%target%\%%C\%%B"
    move "%%~fi" "%target%\%%C\%%B"
)

朝着这个方向前进,我只是试图重复代码并仅交换为源代码,但这并不能那样工作,所以我也会坚持使用.txt。

如果有人有一个主意,我会很高兴的:)

2 个答案:

答案 0 :(得分:0)

使用简单的for来迭代pdf文件的一种方法是更改​​为源文件夹。

要迭代几个源文件夹,请用另一个for括起来:
(未经测试)

@Echo off

set "source=c:\Program Files (x86)"  
set "target=c:\Temp2"

For %%S in (Temp1 Temp2 Temp3) do (
    PushD "%source%\%%S"
    for %%I in (*.pdf) do for /f "tokens=1,2,3 delims=/ " %%A in ("%%~tI") do (
        if not exist "%target%\%%C\%%B" mkdir "%target%\%%C\%%B"
        move "%%~fI" "%target%\%%C\%%B\"
    )
    PopD
)

答案 1 :(得分:0)

感谢您的想法,它看起来非常安静,但与我正在寻找的不匹配:(

如果我在(Temp 1 Temp 2)中添加“ %% S”,那么他正在寻找2种类型的文件夹,也许也是我在示例中的错误:)

除了程序文件,用户文档等之外,我还必须检查其他文件夹。.此外,我仍然需要一个将TXT文件也添加到PDF的想法。

感谢您的精美代码,我将继续尝试寻找解决方案:)