2012-12-11 128 views
2

我的希望是有些人可以帮助我,我花了几天的时间搜索谷歌的答案,并没有得到任何地方。我有一个两部分代码的拳头拉出所有的子文件夹,然后第二部分将这些文件按类型移动到位于其他地方的其他文件夹。我可以让代码在设置的测试中工作,但它不适用于我试图移动的文件。我认为这与它们中有空格的文件的名称有关,但我不确定。这里是代码。多谢你们!批处理文件以名称中的空格移动文件。

第一部分

FOR /R C:\Users\Laptop02\Desktop\Folder 1 Test %%i IN (*.*) DO MOVE %%i C:\Users\Laptop02\Desktop\Folder 1 Test 

第二部分再次

@echooff 
set media=C:\Users\Laptop02\Desktop\Foder 2 Test 
set jpg=C:\Users\Laptop02\Desktop\Foder 2 Test\mediadata 
set xml=C:\Users\Laptop02\Desktop\Foder 2 Test\mediadata 

move %dlDir%*.avi %media% 
move %dlDir%*/*.avi %meia% 
move %dlDir%*.mp4 %media% 
move %dlDir%*/*.mp4 %media% 
move %dlDir%*.mkv %media% 
move %dlDir%*/*.mkv %media% 
move %dlDir%*.jpg %jpg% 
move %dlDir%**.xml %xml% 

感谢。

回答

2

虽然移动命令是好的,上述工程的方法,它应该更快地复制或使用th移动许多文件E采用多线程支持robocopy命令:

@echo off 
set "source=C:\Users\Laptop02\Desktop\Folder 1 Test" 
set "media=C:\Users\Laptop02\Desktop\Foder 2 Test" 
set "jpg=C:\Users\Laptop02\Desktop\Foder 2 Test\mediadata" 
set "xml=C:\Users\Laptop02\Desktop\Foder 2 Test\mediadata" 
robocopy /s /mov /mt "%source%" "%media%" *.avi 
robocopy /s /mov /mt "%source%" "%media%" *.mp4 
robocopy /s /mov /mt "%source%" "%media%" *.mkv 
robocopy /s /mov /mt "%source%" "%jpg%" *.jpg 
robocopy /s /mov /mt "%source%" "%xml%" *.xml 
pause 

另外,它也将更快地只有一次移动文件:

@echo off 
set "source=C:\Users\Laptop02\Desktop\Folder 1 Test" 
set "media=C:\Users\Laptop02\Desktop\Foder 2 Test" 
set "jpg=C:\Users\Laptop02\Desktop\Foder 2 Test\mediadata" 
set "xml=C:\Users\Laptop02\Desktop\Foder 2 Test\mediadata" 

cd "%source%" 
for /r "%~dp0" %%A in (*) do (
    if "%%~xA"==".avi" move "%%~A" "%media%\" 
    if "%%~xA"==".mp4" move "%%~A" "%media%\" 
    if "%%~xA"==".mkv" move "%%~A" "%media%\" 
    if "%%~xA"==".jpg" move "%%~A" "%jpg%\" 
    if "%%~xA"==".xml" move "%%~A" "%xml%\" 
) 
pause 
3

您需要在名称中可能有空格的文件周围加引号,例如

move "%dlDir%*.avi" "%media%" 

UPDATE

对于for部,添加

"delims=" 

这样的:

FOR /F "delims=" IN (dir /b /s "C:\Users\Laptop02\Desktop\Folder 1 Test") 
+0

真棒感谢你,成功了! –

+0

尽管第一部分仍需要帮助。仍然不会拉空间里的文件名称的子文件夹。 –

+0

@IdeaBak:你是否引用了你的变量'DO MOVE“%% i”'? –

相关问题