DOS batch file 작성 내 밥줄

 Class asp와 .NET이 혼재되어 있는 환경에서, 또 일부의 asp를 .NET으로 바꾸게 될 때 기존에
asp파일들이 link된 곳들을 찾아서 새롭게 생성된 .NET용 파일들로 치환을 해 주어야 하는 경우가
있었다. 이때 구 asp파일들을 link하고 있는 파일들을 찾기 위해서 어떤 방법을 취할 것인가?

-파일내 치환 function을 통해서 일괄 치환?
 ->음.. 너무 부담스러운 것 같음. 역시 보고 확인하면서 해야지...
-그렇다면 일단 link된 파일들 목록을 확인해야 겠군. 뭘로 하지? 탐색기의 찾기?
 ->탐색기(Windows XP)의 검색 기능은 파일내 검색을 제대로 못하는 경우가 있던데, 어떻게 믿지?
-그럼 ultraedit의 디렉토리 검색?
 ->이건 검색 후 하나 하나의 파일을 직접 작업할 때는 해당 파일로 직접 이동도 가능하긴 한데...
   파일등으로 취합이 힘들어...
-좋아 그럼 findstr이나 find명령으로 찾아내어서 한 번 파일로 취합해 보자...
   findstr /S /I "filea.asp" D:\Source\StudyManiaWeb\*.* | find /V /I "svn-base" | find /V /I ".svn" > filea.txt
 ->어 제법 편하군... 그런데 음... 찾아야 할게 상당히 많은데... 파일명들을 내가 직접 하났씩
   바꾸면서 해? 뭐 노래 들으면서 그냥 할까? 좋잖아? 스트레스도 없고...
   그런데 개발자가 이게 할 짓인가?
-에잉 그럼 excel로 list들을 취합해서 concatenate로 위의 명령들을 만들면 되겠군...
 ->그거 괜찮네... 만들어서 bat파일에 넣고 한꺼번에 돌려 버리면 되니까...ㅎㅎ
 ->잉? bat파일? 맞아 위의 값들을 인자로 받아서 쉽게 할 수도 간단하게 명령을 수행할 수도 있잖아.
   엑셀로 명령 만드는 것과 현재는 크게 차이는 없지만 batch파일 안쓴지도 꽤 되어었고...
   그리고 향후 하나씩 추가 작업해야 할 때는 만들어 놓으면 좋겠네... 간단한데 해보장.
  
   @echo off
   findstr /S /I "%1" D:\Source\StudyManiaWeb\*.* | find /V /I "svn-base" | find /V /I ".svn" > %1.txt
  
더 좋은 방법도 있겠지만 일단 개발자의 알량한 양심을 건드리지 않는 정도로는 했네...ㅋㅋ

※보통 unix나 linux의 shell script를 다루는 것은 쉽지는 않지만 많은 reference가 온라인과 책에
있다. 하지만 DOS의 batch같은 경우 가끔 아주 필요할 때가 있지만 그때 reference를 찾기가 쉽지가
않다. 그래서 아주 오래전에 구해 놓았던 자료들을 여기에 link한다.

!!아래의 분들께 허락을 구하진 않았습니다. 혹시 문제가 된다면 바로 내리겠습니다.
Prof. Timo Salmi
송세엽님
정재민님
임상호님
위의 분들께 감사드립니다.

※findstr의 경우 UNICODE로 저장된 파일을 검색하지 못한다. 그런데 find는 가능하다.
   *windows의  notepad에서 관리하는 인코딩방법에 대해서 확인해봤다.

인코딩 방법findstrfindultraedit윈도우탐색기
ASCIIOOOO
UNICODEXOOO
UNICODE(big endian)XXXO
UTF8XX△(한글안됨)X
*윈도우 탐색기는 특수 파일들(asp, aspx, master...)등에 대해서 검색도 안되고...

DOS_Batch.zip


트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://dialup.egloos.com/tb/727943 [도움말]

덧글

  • 모꼬모지 2008/10/19 06:03 # 삭제 답글

    오 대단하네염..
    파일 찾아서 각각 파일에 글자내용만 바꾸는 기술..ㅋ
  • 정유성 2009/07/03 18:10 # 삭제 답글

    첨부파일, 감사합니다 ^^

    필요한 상황에서 도움이 많이 될 것 같습니다.
  • 그린세상 2009/07/03 18:11 #

    넵, 영광입니다. 무료로 제공된는 powershell이 더 강력할텐데, 이제는 새로운 것을 배우는 것도 쉽지는 않네요. ㅠ.ㅠ
덧글 입력 영역