하나

2013-11-28 5 views
0

나는 모든 평 파일이 모든 파일에 pep8 검사를 실행 종료를 검색하는 명령했다 :하나

FOR /R %%i IN (*.py) DO pep8 %%i 

지금, 나는 같은 명령을 실행해야을 "migrations"디렉토리에있는 것을 제외한 모든 .py 파일에 대해

내가 찾은 모든 것을 시도했지만 도움이되지 않았습니다. 이 시도하지만 여전히 마이그레이션 디렉토리에서 검색 :

set "logDirectory=C:\workspace" 
for /f "delims=" %%a in ('dir /a-d/b/s "%logDirectory%"^|findstr /riv "^.*[\\][^\\]*migrations[^\\]*$"') do pep8 %%a 

를 윈도우를 실행합니다.

+0

에 사용하는거야? 그 (그들의) 위치가 고정되어 있습니까? – Jon

+0

많은 디렉토리가 있고, 그들은 어느 곳에서나있을 수 있습니다. –

답변

2

FINDSTR을 사용하지 마십시오. 해당 명령은 내용을 기반으로 파일을 필터링하는 데 유용합니다.. 대신 FIND 사용

여기
for /f "delims=" %%a in ('dir /b/s "%logDirectory%\*.py" ^| find /v /i "\migrations\"') do pep8 %%a 
+0

고마워요, 그것은 호수의 매력을 작동합니다 :) –

0

또 다른 옵션은 하나의 "마이그레이션"디렉토리 또는 여러 있는가/R

@echo off 
FOR /R %%i IN (*.py) DO (echo "%%i" |find /i "\migrations\">nul) || pep8 "%%i"