0

Windows 레지스트리에 추가 한 작업 스크립트를 만들었습니다. 창 탐색기에서 마우스 오른쪽 버튼을 클릭하면 "새 작업 폴더 만들기"를 클릭하여 지정된 계층 구조로 새 폴더를 만들 수 있지만 사용자에게 폴더 이름을 묻습니다.기존 폴더 계층 구조를 템플릿으로 사용하여 동일한 계층 구조로 새 폴더를 만드는 방법은 무엇입니까?

현재 스크립트를 편집하여 특정 폴더를 기반으로 계층을 만드는 방법을 알아 내려고하고 있습니다. 이 폴더는 기본적으로 템플릿이 될 것이므로 스크립트를 사용하여 만드는 각 후속 폴더에 이러한 변경 사항이 반영 될 수 있도록 폴더 구조를 업데이트하여 필요에 맞게 수정하십시오. 어떤 도움을 주셔서 미리 감사드립니다! 여기

내가 내 현재 작업 스크립트에있는 것입니다 :

set verbose=NO 
    @echo off 

    set mydir = %cd% 
    cd %mydir% 
    cls 

    call:main 
    goto:eof 

    :main 
    set /p job=Enter Job Name: 

    call:check 

    if %choice%==2 (echo Creating folder. Please Wait... & timeout 1 > nul & 

    call:createDirectory) 
    goto main 

    :check 
    echo[ 
    if exist "%job%" (echo ERROR: Folder already exists. Please choose a different name. 
    & set choice=1) else (set choice=2) 
    echo[ 
    exit /b 

    :createDirectory 
    md "%job%" 

    md "%job%"\1.Development 
    md "%job%"\1.Development\1.Budgets 
    md "%job%"\1.Development\2.Manufacturers 

    md "%job%"\"2.Plans and Specs" 
    md "%job%"\"2.Plans and Specs"\1.Plans 
    md "%job%"\"2.Plans and Specs"\2.Specs 

    md "%job%"\3.Pricing 
    md "%job%"\3.Pricing\1.Quotes 
    md "%job%"\3.Pricing\2.Worksheets 

    md "%job%"\4.Sumbittals 
    md "%job%"\4.Sumbittals\"1.Submittal Reviews" 

    md "%job%"\5.Orders 
    md "%job%"\5.Orders\"1.Order Summaries" 
    md "%job%"\5.Orders\"2.Confirmation Pages" 

    md "%job%"\6.Closeout 
    md "%job%"\6.Closeout\"1.O&M Manuals" 
    md "%job%"\6.Closeout\2.Warranty 

    exit 
+0

'xcopy/t'는 파일을 복사하지 않고 디렉토리 구조를 복사합니다. –

답변

0

당신은 반복적으로 현재 디렉토리에있는 모든 하위 폴더를 나열 현재 디렉토리 또는 FOR /D /R (undocumented? /r flag)의 하위 폴더를 나열하는 FOR /D를 사용할 수 있습니다.

@echo off 
setlocal 
set base=c:\mytemplatedir 
set mydir=%cd% 
goto main 

:enumdir 
pushd "%base%\%~1\%~2" 
for /D %%a in (*) do (
    md "%mydir%\%~1\%~2\%%~a" 
    call :enumdir "%~1\%~2" "%%~a" 
) 
popd 
@goto :EOF 

:main 
call :enumdir . . 

하거나 파일 (*) 또는 폴더 (.)의 폴더 트리를 걸어 FOR /R를 사용할 수 있습니다.

템플릿 폴더에 &이 포함될 수 있습니다. 또는 %를 사용할 수 있습니다. 따라서 특수 배치 문자를 처리 할 필요가 없도록 .vbs 파일을 사용하는 것이 좋습니다.