2016-10-18 3 views
0

다음은 중복 파일을 찾기 위해 만든 스크립트입니다 (아직 완료되지 않았습니다). 하지 않는 것 다음 반면,배치 스크립트에서 파일 읽기

abc.sws 
filename=abc 
2 
2 
1 
abc.txt 
filename=abc 
2 
2 
1 
def.txt 
filename=def 
1 
1 
1 

당신이 볼 수 있듯이, 두 dir /b "%%~ni*" | find /v /c "" 저에게 유효한 결과를 반환 type countfiles.io :

@echo off 
dir /b > files.io 
for /f "tokens=*" %%a in (files.io) do (
    echo %%a 
    FOR %%i IN ("%%a") DO (
     echo filename=%%~ni 
     dir /b "%%~ni*" | find /v /c "" 
     dir /b "%%~ni*" | find /v /c "">countfiles.io 
     type countfiles.io 
     set /p nbfic=<countfiles.io 
     del countfiles.io 
     echo %nbfic% 
    ) 
) 

내가 여기 디렉토리에 3 개 개의 파일이 있고,이 출력됩니다 작업 :

dir /b "%%~ni*" | find /v /c "">countfiles.io 
set /p nbfic=<countfiles.io 
del countfiles.io 
echo %nbfic% 

그러나 나는 당신의 도움이 사전에 ...이 코드 감사를 잘못 될 수있는 것을 볼 수 없습니다!

+1

코드 블록 안에 있습니다. 지연된 확장을 사용해야합니다. – Squashman

+0

고마워요, 지금 완벽하게 작동합니다 !! 이전에 지연된 확장에 대해 들어 보지 못했지만 자주 사용해야 할 것입니다! – aName

답변

0

실종 된 것은 실제로 코드 블록에 있었기 때문에 지연된 확장을 사용해야했습니다. 나는 내 문제는 파일의 시작 부분에 추가 해결 : 당신이 도움을

Setlocal EnableDelayedExpansion 

echo !nbfic!

감사 @Squashman에 의해 echo %nbfic%를 교체! :)

관련 문제