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와)
결과 - 나를 위해 작동 .
감사합니다. 지금 오류가 발생했습니다. %% s이 (가)이 시간에 예상하지 못했습니다 ...? 덕분에 magoo. – user3795654
. 매우 감사. :) – user3795654