在Windows上recursion移动命令

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

mv ... 

要么

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

但Windows“移动”不能这样做

也许有一个窗口的简单替代,更简单,更高性能比

 for /R c:\sourceFolder\ %%G in (*) do ( move /Y "%%G" c:\destinationFolder\ ) 

Linux的MV似乎更新目录指针,但上面的Windows命令会做很难的东西? 我想这对于我需要经常移动的大文件夹来说不是个好主意

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 

Robocopy为我创造了奇迹:

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

我用它来移动具有某些掩码的所有文件从c:\cache和其众多的子目录。

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

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

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

XCOPY应该做的伎俩,我一直在批处理文件中使用它

就像,如果你只是想瞄准.sh文件

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

让我知道你是否有更多的问题

 @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%"