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复制是我的推荐。
一个多功能的文件复制实用程序。