Windows上的递归移动命令

时间:2012-04-14 16:47:37

标签: windows command-line

我需要做一个.sh的.bat副本,我不太了解Windows cmd。 在Linux上,我可以做到

mv ...

rsync -a SOURCE/ DEST/ --remove-sent-files --ignore-existing --whole-file

但Windows“移动”不能做同样的

也许有一个简单的Windows替代方案,比

更简单,更高效
for /R c:\sourceFolder\ %%G in (*) do ( move /Y "%%G" c:\destinationFolder\ )
Linux mv似乎更新了目录指针,但上面的Windows命令会做些什么呢?我想这对于我需要频繁移动的大文件夹来说不是一个好主意

6 个答案:

答案 0 :(得分:13)

Robocopy给我带来了奇迹:

 robocopy c:\cache c:\cache-2012 ?????-2012*.hash /S /MOV

我用它来移动c:\cache及其众多子目录中带有特定掩码的所有文件。

答案 1 :(得分:7)

move命令可以移动目录和文件。

cd /d C:\sourceFolder
rem move the files
for %%i in (*) do move "%%i" C:\destinationFolder
rem move the directories
for /d %%i in (*) do move "%%i" C:\destinationFolder

答案 2 :(得分:0)

XCOPY应该这样做,我一直在批处理文件中使用它

类似的东西,如果您只是尝试定位.sh文件

XCOPY /E /H /Y /C "%SOURCEDIR%\*.sh" "%TARGETDIR%"  

如果您有更多问题,请与我们联系

答案 3 :(得分:0)

@echo off
setlocal
set DIR=
set OUTPUTDIR=C:\Documents and Settings\<username>\Desktop\sandbox1\output
for /R %DIR% %%a in (*.jpg) do xcopy "%%a" "%OUTPUTDIR%"

答案 4 :(得分:0)

我知道这是一个旧线程,但是由于它没有正确的答案,我认为我会把它绑起来。

完成此操作的旧DOS命令是:

   move <source directory> <destination directory>

所以在OP问题中:

   move C:\sourceFolder c:\destinationFolder

该文件夹及其中的所有内容(包括子目录)将被移动。

答案 5 :(得分:-1)

对于Windows中的递归移动,可以使用简单的move命令。这是一个例子,我认为这会有所帮助。

move D:\Dbbackup\*.dmp* D:\Dbbackup\year\month\

其中.dmp是文件的扩展名,该文件将被移动到位置递归文件夹Dbbackup,然后是年份,然后是月份。