CMD MOVE 无法替换 WIN 7 中的目录

CMD MOVE 无法替换 WIN 7 中的目录

MOVE 命令在覆盖目录时不起作用。我也尝试过以管理员权限运行 cmd。我发布了这个问题并提供了更多信息,以便您可以轻松地自行测试。

在某个地方创建自己的文件夹并在该位置打开命令窗口。然后将此块复制并粘贴到 cmd 窗口中以创建测试结构

MD aaa\test\a
MD aaa\test\b
MD bbb\test\b
MD bbb\test\c
MD ccc\test\a
MD ccc\test\c
ECHO 你好 > aaa\test\a\a.txt
ECHO 你好 > aaa\test\b\b.txt
ECHO 你好 > bbb\test\b\b.txt
ECHO 你好 > bbb\test\c\c.txt
ECHO 你好 > ccc\test\a\a.txt
ECHO 你好 > ccc\test\c\c.txt

现在我想移动并合并“.\test”中的所有“测试”文件夹。MOVE
命令很好,但在win7中,当覆盖现有的“文件夹”时会失败(拒绝访问)。如果你现在尝试逐个执行下面的块,第一个会没问题,但下一个会失败。

移动/Y aaa\test.\
移动/Y bbb\test。\
移动/Y ccc\test。\

然而,我发现其他解决方案也有同样的效果。

XCOPY aaa\test 测试\ /E/Y
XCOPY bbb\test 测试\ /E/Y
XCOPY ccc\test 测试\ /E/Y
RD aaa\test /Q/S
RD bbb\test /Q/S
RD ccc\测试/Q/S

XCOPY 然后删除目录

ROBOCOPY aaa\test test\ /E /IS /MOVE

ROBOCOPY 带有 /Move 选项

在这种情况下,COPY 命令完全没用......



我确实需要 MOVE 命令来使包含此内容的批处理文件能够在 XP 中运行。

move /y "%1" c:\mydir\

我尝试了 robocopy,但它只会移动文件夹的内容,而不是整个文件夹。

robocopy "%1" c:\mydir /E /IS /MOVE

如果你想帮助我,那么你可以通过两种方式来做。1
)找到一种解决方案,让 MOVE 像在 XP 中一样工作
2)找到一种方法来做同样的事情移动/y“%1”c:\ mydir \建议


可以从路径中获取文件夹名称,然后执行如下操作

// %1 = “c:\anotherdir\cool”

如果 %1 是 path_to_a_folder 那么(
   获取 %1 的 %foldername
   robocopy“%1”c:\ mydir \%文件夹名称/ E / IS / MOVE
)否则移动/y“%1”c:\ mydir \


编辑:嘿,这对于目录来说很好用,我还能做些什么才能让脚本也可以用于文件?

robocopy %1 "C:\Users\azizkar\Desktop\ebben\%~n1" /E /IS /MOVE

答案1

最后..这是解决方案..谢谢大家的帮助:)

SET mydir=C:\mydir
IF EXIST "%mydir%\%~n1\" (
  ROBOCOPY %1 "%mydir%\%~n1" /E /IS /MOVE
) ELSE (
  MOVE /Y %1 "%mydir%\"
)

答案2

XX复制是我的推荐。

一个多功能的文件复制实用程序。

在此处输入图片描述

相关内容