我是脚本新手,我想问一些关于移动文件的问题。 我有d:\ tool目录,我想将文件夹从该目录移动到另一个网络驱动器。 我还想保留最新的2个文件夹,然后移动其他文件夹。
下面的脚本适用于移动ang保留文件,但只复制子目录。 例如在d:\ tool中,我有文件夹A,B,C。
文件夹A包含文件夹a1(创建日期:2013年4月5日)。
文件夹B包含文件夹b2(创建日期:2013年4月6日)..
文件夹C包含文件夹c3(创建日期:2013年4月7日)..
但是当我运行我的bat文件时,刚转移了a1文件夹。我希望它是A,其中包含a1。 (文件夹B和C得到保留)
net use m: /delete
net use m: "\\test\mytools" test123 /USER:corp\testuser
for /f "skip=2 eol=: delims=" %%F in ('dir /b D:\tool') do robocopy "%%F" "M:" /move /e
net use m: /delete
感谢任何帮助。
答案 0 :(得分:0)
在for循环中使用此dir命令:
dir /ad /od /b
它仅包含目录
它按日期对列表进行排序,因此最早的文件夹是
然后此代码将提取两个顶级文件夹,它们可用作robocopy命令中的排除项:
net use m: /delete
net use m: "\\test\mytools" test123 /USER:corp\testuser
set "a1="
set "a2="
for /f "delims=" %%F in ('dir /ad /od /b "D:\tool"') do (
if defined a1 if not defined a2 set "a2=%%F"
if not defined a1 set "a1=%%F"
)
robocopy "D:\tool" "M:\" /move /e /xd "%a1%" /xd "%a2%"
net use m: /delete
确保备份了工具文件夹 - 并使用虚拟文件和文件夹进行测试。