2015-03-30 46 views
1

第一篇文章,我已經搜索並嘗試過,但似乎找不到像這樣的東西。批處理 - 將基於名稱的文件夾和內容移動到不同的驅動器

好的,所以我花了一些時間在這個上,並打了一堵牆。我理解並且可以對此進行編碼,如果我正在單個驅動器上移動(但是移動),但只要我嘗試實現xcopy以使其能夠跨驅動器工作,我就開始掙扎了。

這是我到目前爲止。這將在左括號的目錄名稱中查找,如果有,則會嘗試將目錄移動到其他文件夾。這工作正常。

@echo off 

SETLOCAL EnableDelayedExpansion 

for /d %%f in ("%C:\Testing\Folder1%\*") do (
SET "folder=%%f" 
if /I NOT "!folder:(=!"=="!folder!" move "%%f" C:\Testing\Folder2 
) 

實例目錄名稱如下

假期(2004) - 移動

佛羅里達度假 - 不要將

紐約(2014) - 移動

〔實施例的文件夾 - 不要移動

現在當我發現移動不w對於不同的驅動器(D:(源)和E:(目標))的ork我發現我需要使用Xcopy。當我嘗試使用xcopy而不是移動時,它將永遠不會移動任何文件或文件夾。

我想我可能不得不在mkdir文件夾中的新位置,然後移動一切,並刪除舊的,但然後我需要從完整的路徑substring目錄名稱。我可能可以做到這一點,但是想在與我們進行驗證之前,我會花費另外半天的時間來搜索如何做到這一點。在過去的幾天裏,我已經把我的頭撞到了牆上,我認爲有些專家可以幫忙。

嘗試使用XCOPY

@echo off 

SETLOCAL EnableDelayedExpansion 

for /d %%f in ("%D:\Folder1%\*") do (
SET "folder=%%f" 
if /I NOT "!folder:(=!"=="!folder!" xcopy "%%f" E:\Folder2 
) 

我明白任何和所有幫助你可以給。

周杰倫

回答

0

我用下面的,也許它會爲你工作:

@echo off 
setlocal enabledelayedexpansion 

for /d %%i in (C:\TEST\*(*) do (
xcopy "%%i" "D:\%%~pni" /s /i 
) 
pause 

爲您相關的目錄替代路徑。祝你好運!

+0

不知道爲什麼這不會格式正確,但我最終與xcopy相同的問題,它不拷貝。不知道我做錯了什麼。以下是結果。 (2013)「/ s/i) C:\ Testing>(xcopy」C:\ Testing \ Folder1 \ Test 2 1(2013)「」C:\ Testing \ Folder2 \ Testing \ Folder1 \文件複製 C:\ Testing>(xcopy「C:\ Testing \ Folder1 \ Test2(2003)」「C:\ Testing \ Folder2 \ Testing \ Folder1 \ Test2(2003)」/ s/i) 0複製文件 C:\ Testing>(xcopy「C:\ Testing \ Folder1 \ This is the Test(2008)」「C:\ Testing \ Folder2 \ Testing \ Folder1 \ This is the Test(2008) 「/ s/i) 0文件已複製 – Jay 2015-03-31 13:07:52

+0

這些測試文件夾是否存在? ...如果他們是你可能需要/ e開關,如果他們是空的。請參見[xcopy](http://ss64.com/nt/xcopy.html)。 – 2015-03-31 14:05:50

+0

就是這樣。謝謝!它似乎是創建folder2內的測試文件夾,所以它的路徑是C:\ Testing \ Folder2 \ Testing \ Folder1,但我可以找出一個。謝謝您的幫助! – Jay 2015-03-31 14:17:43

相關問題