핸디소프트/일일일~2014. 7. 17. 17:30

SVN 업데이트 - 빌드후 변경된 파일들만 추려야 하는 경우가 생기는대 이때 아래와 같이 xcopy 명령어를 이용한다



E:\gw\8.2.3\03_common>xcopy /K /Y /S /H /C /D:07-17-2014 * E:\gw\8.2.3\dist\823_

17\변경분\hip


E:\gw\8.2.3\03_common 디렉토리를 기준으로 2014년 7월17일자로 변경된 파일을 추출해서

E:\gw\8.2.3\dist\823_17\변경분\hip 디렉토리로 복사한다.


/K (파일속성복사)

/S (하위디렉토리포함)

/H (숨김처리된 파일포함) - 필요는 없을듯

/C (파일복사중 오류가 있어도 진행)


Posted by 배터리
핸디소프트/일일일~2013. 12. 16. 20:10


rm -rf test & 를 한다는 것이

rm -rf test * 로 찍은 후 엔터.. -ㅁ-

테스트 데이터 다 날리고 --

복구툴을 찾아보기 시작 

: 결론은 답이 없다 --;; 알아서 조심.. ㅠㅠ testdisk 로 일부 파일이 지워진 경우 수동으로 확인후 복구할수도 있겠으나 이건 삭제된 데이터 양이 적을 경우에나 해당..



extundelete

[root@luna /]# extundelete /dev/cciss/c0d0p4 --restore-directory /home2/gw80/hip/
NOTICE: Extended attributes are not restored.
WARNING: EXT3_FEATURE_INCOMPAT_RECOVER is set.
The partition should be unmounted to undelete any files without further data loss.
If the partition is not currently mounted, this message indicates 
it was improperly unmounted, and you should run fsck before continuing.
If you decide to continue, extundelete may overwrite some of the deleted
files and make recovering those files impossible.  You should unmount the
file system and check it with fsck before using extundelete.
Would you like to continue? (y/n) 
y
Loading filesystem metadata ... 164 groups loaded.
Loading journal descriptors ... 32247 descriptors loaded.
Failed to restore file /home2/gw80/hip/
Could not find correct inode number past inode 2.
Try altering the filename to one of the entries listed below.
File name                                       | Inode number | Deleted status
.                                                 2
..                                                2
lost+found                                        11
gw80                                              524289
vmail                                             393217
directory_201                                     156909         Deleted
extundelete: Operation not permitted while restoring directory.
extundelete: Operation not permitted when trying to examine filesystem



ext4magic

[root@luna /]# ext4magic /dev/cciss/c0d0p4 -M  -d /home1/test/RRRR2/

hip/ 아래 데이터는 복구안됨


testdisk

[root@luna testdisk-6.14]# ./testdisk_static  

로 해당 경로에서 복구 시도하였으나 파일단위로 복구되면서.. 즉  1.java 2.class 3.jsp 로 복구하면서 뭐가 뭔지 알수 없음 --


Posted by 배터리
핸디소프트/일일일~2013. 10. 31. 13:34

- win7, win8 에서  클라이언트의 *.htx, *.hwx 파일이 XSviewer.exe 로 열리지 않는 현상이 관찰되어


  인스톨쉴드(버전 X) 스크립트로 해당 확장자에 대해 XSviewer.exe 로 연결시킴


- 설치완료 후엔 레지스트리에 다음과 같이 추가된다

HKEY_CLASSES_ROOT\.htx

HKEY_CLASSES_ROOT\.hwx

HKEY_CLASSES_ROOT\htx.Document

HKEY_CLASSES_ROOT\hwx.Document


- 참고로 아래 부분은 On END 쪽에 넣으면 설치완료후 확인창이 나오지 않기에 OnFirstUIAfter() 쪽에 넣고 메시지박스로 출력하도록 조정


- 위의 OnFirstUIAfter() 쪽에 넣으면 특정 파일들 (dll ) 이 레지스트리에 등록이 되지 않아 OnMoved() 로 변경

 : 참고로 onMoved() 는 설치할 파일이 PC에 복사되고 난 후 실행되는 부분


prototype NUMBER    MakeAssociation(STRING, STRING,STRING);

prototype NUMBER    MakeAssociationEx1(STRING, STRING,STRING);

prototype NUMBER    MakeAssociationEx2(STRING, STRING,STRING);



////////////////////////////////////////////////////////////////////////

//                                                                    //

//  확장자, 확장자 아이콘 등록  함수                                 //

//  Function:   MakeAssociation                                       //

//                                                                    //

//  Purpose:    Creates a file association in the Registry.  Use      //

//            this function for Explorer shell only, as it will       //

//            not create the extra application identification keys,   //

//            which are necessary for Program Mananger shell.         //

//            For Program Manager shell, you can use the script-      //

//            based function MakeAssociationEx.                       //

//                                                                    //

//  Parameters:                                                       //

//      szApp:    String with full path to the executable to be       //

//                associated with the file extension.                 //

//                                                                    //

//      szExtension:  String with the extension to be associated      //

//                with an application.  Must include the preceding    //

//                period (for example:  ".txt")                       //

//                                                                    //

//      szIcon :   String with full path to the executable to be      //

//                associated with the file Icon                       //

//                                                                    //

//                                                                    //

////////////////////////////////////////////////////////////////////////


  

function MakeAssociation(szApp, szExtension, szIcon)

BOOL      bResult;

NUMBER    nResult;

STRING szOpen;

begin

  RegDBSetDefaultRoot ( HKEY_CLASSES_ROOT );

  //bResult = RegDBKeyExist(szExtension);

  //if (bResult = TRUE) then

//    nResult = AskYesNo ("Warning the extension " + szExtension + " is already registered. Overwrite?", YES);

//    if (nResult = NO) then

//       return -1;

//    endif;

//  endif;

  LongPathToShortPath (szApp);

  szApp = szApp + " \"%1\"";

  szOpen = "open" + " \"%1\""; 

  RegDBCreateKeyEx (szExtension, "");

  

  RegDBCreateKeyEx (szExtension + "\\DefaultIcon", "");

  RegDBSetKeyValueEx (szExtension + "\\DefaultIcon","", REGDB_STRING, szIcon, -1);

  RegDBCreateKeyEx (szExtension + "\\shell", "");

  RegDBCreateKeyEx (szExtension + "\\shell\\open", "");

  RegDBCreateKeyEx (szExtension + "\\shell\\open\\command", "");

  RegDBSetKeyValueEx (szExtension + "\\shell\\open\\command", "", REGDB_STRING, szApp, -1);

  

  //RegDBCreateKeyEx (szExtension + "\\shell\\open\\ddeexec", "");//추가

  //RegDBSetKeyValueEx (szExtension + "\\shell\\open\\ddeexec", "", REGDB_STRING, szOpen, -1);//추가

  

  return 0;

end;


////////////////////////////////////////////////////////////////////////  


function MakeAssociationEx1(szApp, szExtension, szName)

BOOL      bResult;

NUMBER    nResult;

STRING    svKeyName;


begin

  RegDBSetDefaultRoot ( HKEY_CLASSES_ROOT );


  StrSub ( svKeyName , szExtension , 1 , 3 );

  svKeyName = svKeyName + ".Document";


//  bResult = RegDBKeyExist(szExtension);

//  if (bResult = TRUE) then

//    nResult = AskYesNo ("Warning the extension " + szExtension + " is already registered. Overwrite?", YES);

//    if (nResult = NO) then

//       return -1;

//    endif;

//  endif;


  LongPathToShortPath (szApp);

  szApp = szApp + " \"%1\"";

  RegDBCreateKeyEx (szExtension, "");

  RegDBSetKeyValueEx ( szExtension , "" , REGDB_STRING , svKeyName , -1 );


  RegDBCreateKeyEx (svKeyName, "");

  RegDBSetKeyValueEx ( svKeyName , "" , REGDB_STRING , szName , -1 );

  RegDBCreateKeyEx (svKeyName + "\\shell", "");

  RegDBCreateKeyEx (svKeyName + "\\shell\\open", ""); 

  RegDBCreateKeyEx (svKeyName + "\\shell\\print", ""); 

  RegDBCreateKeyEx (svKeyName + "\\shell\\open\\command", "");

  //RegDBCreateKeyEx (svKeyName + "\\shell\\print\\command", "");

  RegDBSetKeyValueEx (svKeyName + "\\shell\\open\\command", "", REGDB_STRING, szApp, -1);

  //RegDBSetKeyValueEx (svKeyName + "\\shell\\print\\command", "", REGDB_STRING, szApp, -1);


  return 0;

end;  //End of function MakeAssociationEx


////////////////////////////////////////////////////////////////////////


function MakeAssociationEx2(szApp, szExtension, szName)

BOOL      bResult;

NUMBER    nResult;

STRING    svKeyName;


begin

  RegDBSetDefaultRoot ( HKEY_CLASSES_ROOT );


  StrSub ( svKeyName , szExtension , 1 , 3 );

  svKeyName = svKeyName + ".Document";


//  bResult = RegDBKeyExist(szExtension);

//  if (bResult = TRUE) then

//    nResult = AskYesNo ("Warning the extension " + szExtension + " is already registered. Overwrite?", YES);

//    if (nResult = NO) then

//       return -1;

//    endif;

//  endif;


  LongPathToShortPath (szApp);

  szApp = szApp + " \"%1\"";

  RegDBCreateKeyEx (szExtension, "");

  RegDBSetKeyValueEx ( szExtension , "" , REGDB_STRING , svKeyName , -1 );


  RegDBCreateKeyEx (svKeyName, "");

  RegDBSetKeyValueEx ( svKeyName , "" , REGDB_STRING , szName , -1 );

  RegDBCreateKeyEx (svKeyName + "\\shell", "");

  RegDBCreateKeyEx (svKeyName + "\\shell\\open", ""); 

  RegDBCreateKeyEx (svKeyName + "\\shell\\print", ""); 

  //RegDBCreateKeyEx (svKeyName + "\\shell\\open\\command", "");

  RegDBCreateKeyEx (svKeyName + "\\shell\\print\\command", "");

  //RegDBSetKeyValueEx (svKeyName + "\\shell\\open\\command", "", REGDB_STRING, szApp, -1);

  RegDBSetKeyValueEx (svKeyName + "\\shell\\print\\command", "", REGDB_STRING, szApp, -1);


  return 0;

end;  //End of function MakeAssociationEx2


///////////////////////////////////////////////////////////////////////////////


function OnMoved()

begin         

MakeAssociation(TARGETDIR ^ "\\bin" ^ "XSViewer.exe", ".htx",TARGETDIR ^ "\\bin" ^ "XSViewer.exe,0" );

MakeAssociation(TARGETDIR ^ "\\bin" ^ "XSViewer.exe", ".hwx",TARGETDIR ^ "\\bin" ^ "XSViewer.exe,0" );

MakeAssociationEx1(TARGETDIR ^ "\\bin" ^ "XSViewer.exe", ".htx",TARGETDIR ^ "\\bin" ^ "XSViewer.exe,0" );

MakeAssociationEx1(TARGETDIR ^ "\\bin" ^ "XSViewer.exe", ".hwx",TARGETDIR ^ "\\bin" ^ "XSViewer.exe,0" );

MakeAssociationEx2(TARGETDIR ^ "\\bin" ^ "XSViewer.exe /p", ".htx",TARGETDIR ^ "\\bin" ^ "XSViewer.exe,0" );

MakeAssociationEx2(TARGETDIR ^ "\\bin" ^ "XSViewer.exe /p", ".hwx",TARGETDIR ^ "\\bin" ^ "XSViewer.exe,0" );

//MessageBox ("HANDY Groupware 클라이언트가 설치 완료 되었습니다.", INFORMATION);


end;



Posted by 배터리