2013-08-05 3 views
0

네트워크 드라이브에있는 각 폴더 아래에 디렉터리 구조를 다시 만들 수있는 Windows 명령 줄 스크립트를 만들려고합니다. 나는 처음에 CMD에서 코드를 생성하고 원하는 결과가있을 때 배치 파일로 변환합니다. 현재Windows 명령 줄을 사용하여 각 디렉터리 아래에 하위 디렉터리 만들기

나는 다음과 같은 한 : 폴더는 \ READYSHARE \ usb_storage를 글로벌 \ 아래에 생성되기 때문에

set location=\\READYSHARE\USB_Storage\Global 

for /r %location% %f in ("dir %location% /a:D") do (

MD "%location%\Archived Tenants" 
MD "%location%\Current tenant -" 
MD "%location%\Current tenant -\Tenancy Sign up Pack" 
MD "%location%\Owners\" 
MD "%location%\Owners\Advertising Photos" 
MD "%location%\Owners\Invoices" 
MD "%location%\Owners\Quotes" 
MD "%location%\Owners\Routine Inspections" 
) 

것은 분명히이 나에게 원하는 출력을 제공하지 않습니다하지 \에 포함 된 모든 하위 디렉토리 READYSHARE \ USB_Storage \ Global. 그래서 이것을 다음으로 변경했습니다 :

set location=\\READYSHARE\USB_Storage\Global 

for /r %location% %f in ("dir %location% /a:D") do (

MD "%f\Archived Tenants" 
MD "%f\Current tenant -" 
MD "%f\Current tenant -\Tenancy Sign up Pack" 
MD "%F\Owners\" 
MD "%f\Owners\Advertising Photos" 
MD "%f\Owners\Invoices" 
MD "%f\Owners\Quotes" 
MD "%f\Owners\Routine Inspections" 
) 

분명히 작동하지 않습니다.

누군가 원하는 결과를 얻는 방법에 대한 도움을받을 수 있습니까?

도움 주셔서 감사합니다.

감사합니다, 스콧

답변

1
for /r %location% %f in ("dir %location% /a:D") do (

당신은 for /f (파일 처리/명령 치환)의 구문 for /r (재귀 처리)의 구문을 혼합하고 있습니다. 또한 배치 파일에서이 값을 실행하는 경우 루프 변수 (%%f)에 %을 두 번 입력해야합니다.

당신이 할 직접 %location% 아래의 폴더 구조를 만들려면이 :

@echo off 

setlocal 

set "location=\\READYSHARE\USB_Storage\Global" 

for /d %%d in (%location%\*) do (
    md "%%d\Archived Tenants" 
    md "%%d\Current tenant -" 
    md "%%d\Current tenant -\Tenancy Sign up Pack" 
    md "%%d\Owners\" 
    md "%%d\Owners\Advertising Photos" 
    md "%%d\Owners\Invoices" 
    md "%%d\Owners\Quotes" 
    md "%%d\Owners\Routine Inspections" 
) 
:이 작업을 수행 %location%의 모든 최상위 폴더 아래의 폴더 구조를 만들려면

@echo off 

setlocal 

set "location=\\READYSHARE\USB_Storage\Global" 

md "%location%\Archived Tenants" 
md "%location%\Current tenant -" 
md "%location%\Current tenant -\Tenancy Sign up Pack" 
md "%location%\Owners\" 
md "%location%\Owners\Advertising Photos" 
md "%location%\Owners\Invoices" 
md "%location%\Owners\Quotes" 
md "%location%\Owners\Routine Inspections" 

%location% (하위 폴더 포함)의 모든 하위 폴더에 폴더 구조를 만들려면 다음을 수행하십시오.

@echo off 

setlocal 

set "location=\\READYSHARE\USB_Storage\Global" 

for /f "delims=" %%d in ('dir /b /a:d /s "%location%"') do (
    md "%%d\Archived Tenants" 
    md "%%d\Current tenant -" 
    md "%%d\Current tenant -\Tenancy Sign up Pack" 
    md "%%d\Owners\" 
    md "%%d\Owners\Advertising Photos" 
    md "%%d\Owners\Invoices" 
    md "%%d\Owners\Quotes" 
    md "%%d\Owners\Routine Inspections" 
) 
+0

는 당신의 도움을 주셔서 감사합니다. 그 대답은 매우 성공적이었고 절대적으로 자리 매김했습니다. – user2337871

1

/F 옵션과 함께 FOR 명령을 사용하여 DIR 명령의 출력을 구문 분석 한 다음 % a 변수를 하위 디렉터리의 이름으로 사용할 수 있습니다.

for /f %a in ('dir /a:D /B %location%') do (
    MD "%location%\%a\Archived Tenants" 
    MD "%location%\%a\Current tenant -" 
    MD "%location%\%a\Current tenant -\Tenancy Sign up Pack" 
    MD "%location%\%a\Owners\" 
    MD "%location%\%a\Owners\Advertising Photos" 
    MD "%location%\%a\Owners\Invoices" 
    MD "%location%\%a\Owners\Quotes" 
    MD "%location%\%a\Owners\Routine Inspections" 
) 

참고 :이 배치 파일로이 번역 할 때 변수 이름에 %를 ​​복제해야합니다 (% A> %% A)

+0

작업과 제안에 감사드립니다. 대단히 감사합니다. – user2337871