나는 SVN 컨트롤하에 여러 개의 php
프로젝트를 가지고 있습니다. 클라이언트 측에서 업데이트 후 컴파일 된 PHP 템플릿 파일을 삭제하고 싶습니다. 이 파일들은 ./tmp/smarty/compile
폴더에 있습니다. 그래서 Windows 명령 줄을 사용하여이 작업을 수행 할 수 있습니다.프로젝트 속성의 TortoiseSVN 클라이언트 측 hook (캐시 파일 삭제)
del /Q path_to_my_project\tmp\smarty\compile
이 명령을 cmd.exe에서 실행하면 모든 파일이 성공적으로 삭제됩니다. 프로젝트 속성 tsvn:postupdatehook
를 사용
나는 프로젝트 경로에 대한 %REPOROOT%
자리를 사용해야합니다.
del /Q %REPOROOT%\tmp\smarty\compile
del
가 cmd.exe
명령, 그래서 cmd.exe
먼저 실행 한 다음 원하는 명령을 실행해야합니다 그래서 내 명령이된다. 내가 실행할 때 (reporoot
은 전체 경로로 변경하여)이 너무 잘 작동 Win+R
를 사용
cmd.exe /c del /Q %REPOROOT%\tmp\smarty\compile
: 같은 결국 내 후크 명령을 보인다.
는 그럼 난 SVN의 속성이 줄을 (내가 SNV이 저장소에http
- 경로가 아닌 로컬 경로를 반환 overwise
\
이
/
에 슬래시 교체해야합니다), 프로젝트를 업데이트하려고했습니다. 그래서 여기
reporoot
이 성공적으로 작업 복사본 경로를 수정 번역
cmd.exe /c del /Q D:\_projects\webCakePHP\.....\tmp\smarty\compile
: 내가 훅을 실행하려면 TortoiseSVN을 나에게 묻는다. 모든 것이 잘 보이는,하지만이 훅을 실행할 때, 성공적 tmp\smarty\compile
에서 파일을 삭제하지만 그것도 디렉토리를 복사 작업에서 모든 파일을 삭제합니다.
질문은 내가 뭘 잘못하고 올바른 방법으로 업데이트 후 파일을 삭제하는 것입니다.
나는 따옴표에게 몇 가지 방법을 넣어 해봤지만 전혀 enything 삭제하거나 그런 디렉토리가 없음을 말한다하지 않습니다.
pushd %~dp0..\tmp\smarty\compile
del /Q *
popd
내 후크 cmd를 문자열 %REPOROOT%/bin/clearCache.bat
입니다 :
감사
내 질문에 대한 대체 솔루션으로
'del/Q "% REPOROOT % \ tmp \ smarty \ compile"경로를 따옴표로 묶는 데 도움이 될 수도 있습니다. 그렇지 않으면, 공간이나 다른 토큰 구분자가 발생할 경우,'del'은 그것을 여러 경로로 예기치 않게 해석합니다 ... – aschipfl
@aschipfl 경로에 공백이 없지만 그런 따옴표로는 기억하지 못합니다. 나는 경로와 전체 del 명령과 이중 인용문 del-path를 이스케이프 처리하여 인용하려고 시도했다. ( – teran
따옴표로 묶는 경로는 결코 해를 끼치 지 않으며 공백 문제를 피하고 특수 문자를 이스케이프 할 필요가 없다 ... – aschipfl