2 ngeometry nGeometry 于 2014.11.25 14:50 提问

dos(cmd)下 move命令移动某个文件夹下的所有子文件和子目录到根目录

我现在在k盘有一个文件夹dir1,想通过cmd命令实现将文件夹a下的所有子文件和子目录移动到k盘。请问这个cmd命令要怎么写。我已经尝试过很多网上的教程了。有的用xcopy先复制,再删除,但是这样耗费的空间很大,假设我的k盘只有4g,但已经装了3g多的东西,所以先复制一份,在删除时行不通的。我就想用move命令或者其他类似命令可以直接剪切过来是最好的。

1、网上的教程有for /f "tokens=" %i in ('dir/ad/b K:\dir1') do move "%i" K:\ 试过了这个,结果没有任何反应。
2、还有就是 move k:\dir1* k:,这个也试过了,结果只能移动文件,不能移动子文件夹。

请问各位有没有什么好办法解决这个问题。

6个回答

save4me
save4me   Ds   Rxr 2014.12.03 16:49

把下面的存成bat批处理文件,放到K盘下面运行

@echo off
setlocal enabledelayedexpansion
@echo off
set PATH=%~dp0
echo %PATH%
for /f "tokens=*" %%i in ('dir %PATH%dir1 /b') do (
move "%PATH%dir1\%%i" "%PATH%"
echo "move" "%PATH%dir1\%%i" "%PATH%"
)

pause

TageDimo
TageDimo 感谢~
接近 2 年之前 回复
save4me
save4me   Ds   Rxr 2014.12.18 10:11

我在最后一次回答中的批处理可以使用吗?在我本机上测试,能达到你描述的需求。
上面的答案有帮助吗?如果还有问题,请提出来,如果对答案满意,请顶一下,并标记为采纳答案,谢谢!

91program
91program   Ds   Rxr 2014.11.25 15:09

不知道这个能不能满足要求:
// 将D盘的MyDoc文件夹剪切到E:\Test目录下

xcopy /s /e /i /y D:\Test\MyDoc E:\Test\MyDoc &&rd /s /q D:\Test\MyDoc

nGeometry
nGeometry 你这样做,然后就得重新把E:\Test目录的下的MyDoc重新移动到D:\MyDoc才能完成任务。如果文件(包括文件夹)较多的话,这个过程相当于做了两次剪切。如果可以从D:\Test\MyDoc直接剪切到D:\MyDoc就好了
接近 3 年之前 回复
wmyunfei
wmyunfei   2014.11.25 15:55

到网上下载个软件HDClone,这个软件好用。

nGeometry
nGeometry 回复nGeometry: 变成改为编程,打错字。。。。
接近 3 年之前 回复
nGeometry
nGeometry 额。。。这里要求批处理命令实现。。。是要自己变成的,用别人的软件就没意思了。。。还不如自己手动剪切
接近 3 年之前 回复
save4me
save4me   Ds   Rxr 2014.11.25 21:27

你的第一个批处理没有反应,是因为你的源文件夹和目标文件夹是在不同的分区,move支持跨分区移动文件,但不知持跨分区移动文件夹。你可以考虑移动的文件时判断文件夹是否存在,如果不存在则创建,这样应该就可以了。

nGeometry
nGeometry 你好,同样是K盘下怎么会是跨分区呢
接近 3 年之前 回复
wjxiaoguo
wjxiaoguo   2016.05.20 16:44

这个问题解决了没有啊?

Csdn user default icon
上传中...
上传图片
插入图片