首页 > 解决方案 > 批处理如何移动隐藏目录?

问题描述

我在批处理脚本 (.bat) 中使用以下脚本行将目录 (foo) 的内容复制到另一个 (bar):

move "C:\foo\*.*" "C:\bar\"
for /d %%a in ("C:\foo\*") do move "%%~fa" "C:\bar\"

第一行移动文件,第二行移动文件夹。但是,这些并没有移动隐藏目录。.git是一个常见的例子。我试过for /d %%a in ("C:\foo\.*") do move "%%~fa" "C:\bar\"没有成功。

如何移动我的隐藏目录以及我的其余文件和目录?

编辑:以下解决方案非常接近于执行所需的操作,但由于“移动”命令无法找到隐藏文件夹而失败(在未隐藏的 .folder 上尝试了相同的操作并且它有效):

for /f "tokens=*" %%G in ('dir /b /a:hd "C:\foo\*"') do move "C:\foo\%%G" "C:\bar\"

标签: batch-filedirectorymove

解决方案


经过一些额外的研究,我发现 robocopy 似乎默认包含在 Windows 10 发行版中,并robocopy /MOVE允许在一行中移动所有需要的文件和文件夹,例如:

robocopy "C:\foo" "C:\bar" /E /MOVE

可以添加其他日志记录选项以减少命令行的输出。


推荐阅读