2013-02-24 37 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

相关问题