2014-07-22 3 views

답변

1
for /f "delims=|" %%s in ('dir /ad/b') DO (
if exist "%%s\Folder1" md "%%s\Folder2" 
) 

참고 : DO 누락; 열린 괄호는 DO과 동일한 실제 줄에 있어야합니다. EXIST이 아니라 EXISTS입니다. DO은 (는) IF 문에 포함되어 있습니다.

---------- 위의 수정 된 내용에 유의하십시오! ^^^^^^^^

데모 배치 :

@ECHO Off 
SETLOCAL 

PUSHD U:\sourcedir 

ECHO ======before...VVV 
DIR /ad U:\sourcedir\err12 

:: Ensure folder1 is missing... 
RD err12\Folder1 2>nul 
for /f "delims=|" %%s in ('dir /ad/b') DO (
if exist "%%s\Folder1" md "%%s\Folder2" 
) 

ECHO ======after...VVV (no folder1 so folder2 NOT created) 
DIR /ad U:\sourcedir\err12 

:: Make folder1 
MD err12\Folder1 2>nul 
for /f "delims=|" %%s in ('dir /ad/b') DO (
if exist "%%s\Folder1" md "%%s\Folder2" 
) 

ECHO ======after...VVV (folder1 so folder2 IS created) 
DIR /ad U:\sourcedir\err12 

:: Remove both folder1 and folder2 
RD err12\Folder1 2>nul 
RD err12\Folder2 2>nul 
for /f "delims=|" %%s in ('dir /ad/b') DO (
if exist "%%s\Folder1" ECHO(md "%%s\Folder2" 
) 
ECHO ======after...VVV (no folder1 so folder2 NOT created AGAIN) 
DIR /ad U:\sourcedir\err12 


popd 

GOTO :EOF 

참고 : 나는 테스트를 위해 U:\sourcedir을 사용했다. U:\sourcedir\err12가 이미 있습니다. if 문에서 do이 제거 된 후, 그러나 당신이보고 한대로 그는 do is not recognised ... 오류가 아닌 %%s를 얻을 것이다 - 그래서

======before...VVV 
Volume in drive U has no label. 
Volume Serial Number is 0460-0000 

Directory of U:\sourcedir\err12 

22/07/2014 10:11 <DIR>   . 
22/07/2014 10:11 <DIR>   .. 
       0 File(s)    0 bytes 
       2 Dir(s) 2,126,249,984 bytes free 


======after...VVV (no folder1 so folder2 NOT created) 
Volume in drive U has no label. 
Volume Serial Number is 0460-0000 

Directory of U:\sourcedir\err12 

22/07/2014 10:11 <DIR>   . 
22/07/2014 10:11 <DIR>   .. 
       0 File(s)    0 bytes 
       2 Dir(s) 2,126,249,984 bytes free 


======after...VVV (folder1 so folder2 IS created) 
Volume in drive U has no label. 
Volume Serial Number is 0460-0000 

Directory of U:\sourcedir\err12 

22/07/2014 10:11 <DIR>   . 
22/07/2014 10:11 <DIR>   .. 
22/07/2014 11:33 <DIR>   Folder1 
22/07/2014 11:33 <DIR>   Folder2 
       0 File(s)    0 bytes 
       4 Dir(s) 2,126,184,448 bytes free 


======after...VVV (no folder1 so folder2 NOT created AGAIN) 
Volume in drive U has no label. 
Volume Serial Number is 0460-0000 

Directory of U:\sourcedir\err12 

22/07/2014 10:11 <DIR>   . 
22/07/2014 10:11 <DIR>   .. 
       0 File(s)    0 bytes 
       2 Dir(s) 2,126,249,984 bytes free 

(삽입 된 작은 whitepace와)

결과 - 나를 위해 작동 .

+0

감사합니다. 지금 오류가 발생했습니다. %% s이 (가)이 시간에 예상하지 못했습니다 ...? 덕분에 magoo. – user3795654

+0

. 매우 감사. :) – user3795654

관련 문제