我正在尝试使用DOS批处理文件复制目录的内容,该文件以计算机名称开头,后跟下划线和日期戳。我的第一个冲动是一些变化:
copy D:\%Computername%_\*\\*.* C:\WhateverPath
当然我无法让它发挥作用。看起来像一个简单的问题,但我对批处理文件或DOS没有多少经验。
答案 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 \文件夹。