2013-02-24 40 views
1

我很難試圖使它工作。 這是我的批處理文件,只是爲了測試我已經把一個內部設置。 我想解析文件夾名稱列表中的文本文件,找到該文件夾​​並僅複製文件夾及其內容及其樹。創建一個批處理解析文本文件,找到一個文件夾並複製它和它的樹

@echo off 
setlocal 
set str=SMX47 
for /f "delims=" %%a in ('dir /b /s /o-d /ad') do if "%%~na" == "%str%" copy "%%a" "C:\Test\testcopy" 

它發現一個名爲SMX47文件夾,並僅在該文件夾複製testcopy其內容。 我想獲得:

\GP\GV\SMX47\(so樹)和文件夾內容SMX47

感謝您的幫助球員。 Sam

回答

0

這裏有一種方法可以做到這一點。當你完成所有工作時,關閉@echo on和@echo(結束)。

@echo off 
set str=SMX47 
for /f "delims=" %%a in ('dir /b /s /o-d /ad') do (
    if "%%~na" == "%str%" (
     call :CopyFolderStructure "%%a" 
    ) 
    ) 
pause 
goto :eof 

:CopyFolderStructure 
set FolderStructure=%~1 
call set FolderStructure=%%FolderStructure:%cd%=%% 
@echo on 
xcopy /i /y "%~1\*.*" "C:\Test\testcopy%FolderStructure%\" 
@echo off 
goto :eof 
+0

感謝RGuggisberg您的幫助,出色地完成它的工作原理,但有一個映射驅動器嘗試它的時候,我遇到的「無效的路徑錯誤」,因爲它試圖在 C複製文件:\ TEMP \ Z: \ data \ ..... – 2013-02-25 01:55:50

+0

@echo off for/f「tokens = *」%% b in(list_pn.txt)do( for/f「delims =」%% a in('dir/b/S/OD /廣告 「Z:\數據」')做( \t如果 「%%〜な」 == 「%% b」( \t \t呼叫:CopyFolderStructure 「%%一個」 \t \t) \t) ) 轉到:EOF :CopyFolderStructure 組FolderStructure =%〜1個 呼叫組FolderStructure = %% FolderStructure:%CD(%)= %% XCOPY/I/Y/Q 「%〜1 \ *。*」「C :\ Temp%FolderStructure%\「 goto:eof – 2013-02-25 01:59:57

相關問題