2014-12-03 4 views
0
@echo off 
set files=InstallSlinger27.bat:Stash.txt 

for /F "delims=:" %%i IN ("%files%") DO (
    ECHO %%i 
    if exist %%i (
    echo EXIST 
) else (
    echo DO NOT EXIST 
) 
) 

파일 배치는 InstallSlinger27.bat 파일이 있는지 확인하고 Stash.txt 파일이 있는지 확인하기를 기대합니다./F에 대해 하나의 문자열 세그먼트에 대해서만 루프 작업을 수행합니다.

그러나, 출력이 두 번째 파일에 대한 검증을하지 않습니다

InstallSlinger27.bat 
EXIST 

입니다.

나는 몇 가지 시도를했고, 과거에는 작동하는 곳에서 반복했다. 파일 목록이 커질 수 있기 때문에 %% i와 %% j에 대한 검사를하고 싶지 않습니다.

답변

2
@ECHO OFF 
SETLOCAL 
set files=InstallSlinger27.bat:Stash.txt 

FOR %%a IN ("%files::=","%") DO (
IF EXIST %%a (ECHO %%a exists) else (ECHO %%a missing) 
) 
GOTO :EOF 

난 당신이 :부터 분리의 선택 전체 파일 이름 내에서 발생할 수있는 다시 생각하는 게 좋을 것이지만.

+0

'("% files :: =", "%")'조금 이해할 시간이 없습니까? ','무엇을합니까? –

+1

@JohnDOE''':''에''''를 써서 전체 문자열을'''로 묶으므로''s1 : s2''는''s1 '',''s2''가되고 따옴표로 묶인 문자열로 해석됩니다 쉼표 대신에 공백이 올 수 있습니다. – Magoo

+0

쉼표도 유효한 파일 이름 문자이기 때문에 구분 기호로 파이프'| '를 사용하려고합니다. – Magoo

관련 문제