我正在尝试创建一个批处理文件,将文件和目录+所有子目录从一个地方移动到另一个地方
例如,假设我有这些:
C:\Source\abc.files
C:\Source\Dir1\abc2.files
C:\Source\Dir1\Sub1\abc3.files
C:\Source\Dir2\xyz.files
当我使用move C:\Source\*.* C:\Dest\
仅abc.files
显示目标文件夹时。我需要Source
目录的全部内容及其所有子目录的内容
第三方解决方案(DOS 除外)是可以的...如果它们是免费的并且没有病毒。=)
答案1
您在这里遇到了两个问题。
首先,您被告知move
仅复制名称与*.*
模式匹配的文件。Dir1
并且Dir2
两者都不匹配。(名称中*.*
都没有“ ”(点))。@Seth 在您原始帖子的评论中指出了这一点。.
第二个问题是,move
当你要求它同时移动一个文件夹和一个文件时,它的行为不合理(恕我直言)。如果同时有其他内容试图移动,Move 会拒绝移动文件夹:
将一个目录移动到另一个目录:
move C:\Source\Dir1 C:\Dest\
(现已C:\Dest\Dir1
存在)
仅移动内部顶层的文件C:\Source\
:
move C:\Source\* C:\Dest\
(现已C:\Dest\abc.files
存在)
当您尝试同时移动两个文件夹时会产生语法错误(对我来说这两种语法都不起作用)
move C:\Source\Dir1,C:\Source\Dir2 C:\Dest\
move C:\Source\Dir1 C:\Source\Dir2 C:\Dest\
文档move
建议您应该能够指定要一次移动的多个文件和文件夹,并用逗号(,
)分隔要移动的文件,但这对我来说似乎不起作用。
文档确实Moves files and renames files and directories.
表明它确实无法移动目录......
因此,我认为没有一种解决方案可以适用move
于 DOS 兼容机器上的命令。但是,在较新版本的 Windows 中还有其他较新的命令可能有效。xcopy
是一个很受欢迎的命令。不幸的是,这对我来说不起作用,因为xcopy
它不执行文件系统级别的移动,它只复制然后删除原始文件。这对于较小的文件来说没问题,但对于较大的文件来说可能是灾难性的。