如何复制具有日期戳的目录

时间:2011-08-31 19:15:31

标签: batch-file directory copy

我正在尝试使用DOS批处理文件复制目录的内容,该文件以计算机名称开头,后跟下划线和日期戳。我的第一个冲动是一些变化:

copy D:\%Computername%_\*\\*.* C:\WhateverPath

当然我无法让它发挥作用。看起来像一个简单的问题,但我对批处理文件或DOS没有多少经验。

2 个答案:

答案 0 :(得分:1)

尝试:

FOR /d %d IN (D:\%COMPUTERNAME%_*) DO xcopy %d C:\WhateverPath /E

这将在/d下使用模式%COMPUTERNAME%_*遍历所有目录(因此为D:\),并将这些目录的内容复制到C:\WhateverPath/E用于复制所有文件和目录,也用于复制空文件和目录。

有关xcopy的文档,请在DOS shell(cmd)中键入xcopy /?

注意:如果您将其放在批处理文件(something.bat)中,则必须在上面的代码中将%d替换为%%d

答案 1 :(得分:1)

如果您有多个标记为C:\%computername%_%random_time_stamp%\的文件夹,并且您需要访问其中的每个文件夹,然后将其所有内容移至一个文件夹,则可以执行以下操作:

鉴于路径中唯一的下划线是%computername%和时间戳之间的下划线

FOR /F "USEBACKQ tokens=*" %%F IN (`DIR /b /a:d "C:\" ^| FIND /I "%computername%_"`) DO (
 COPY /y "%%~fF\*" "C:\WhateverPath\"
)

对于来自命令DIR的每个结果,/ b开关表示没有标题信息,/ a:d表示只返回目录,我想只找到包含computername_的文件夹,并且我想要复制每个文件夹的内容到C:\ WhateverPath \文件夹。