다국어 작업이 많은 관계로 encoding charset으로 utf-16을 많이 쓰고 있다.
다른 팀에서 오는 문서의 경우 ANSI 나 utf-8, utf-8 + BOM 등 다양하게 오는 관계로
utf-16으로 바꾸는 프로그램을 많들어서 썼는데
PowerShell 로 하면 간단하네 ;;;

get-content -Path $inFile | out-file $outFile -encoding unicode

출처 : http://www.robvanderwoude.com/powershellexamples.php


읽을 때 charset을 자동 감지하는 루틴을 추가해주는게 귀찮았는데 좋은 듯...:)

(18.05.04)

윈도우 명령줄에서 아래와 같은 식으로 powershell 명령을 실행할 수 도 있다.

powershell -Command "& {get-content -Path <inFile> | out-file <outFile> -encoding ASCII}"

encoding 은 Unicode, UTF7, UTF8, UTF32, ASCII, BigEndianUnicode, Default, OEM 만 지원한다고 한다. Default 는 시스템의 현재 ASNI 코드 페이지의 인코딩, OEM 은 운영 체제의 OEM 코드 페이지라고 합니다.

참고 : PowerShell - Out-File 


728x90
콘솔로 부터 입력을 받을 때
기존 윈도우 콘솔(cmd.exe)에서는
입력 문자열이 그대로 노출되는 문제가 있다.

PowerShell에서는 read-host에 -AsSecureString 옵션을 이용하면
* 표로 숨길 수가 있다.

그런데 그 문자열이 SecureString 형으로 저장되어서
다른 명령어의 파라미터로 넘길 경우 문제가 되는 경우가 있다.
(ex. osql, bcp)

이 경우 아래와 같이 기본 문자열로 바꿔주면 된다능

$basicStr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($password)
$password = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($basicStr)

출처 : http://myitforum.com/cs2/blogs/yli628/archive/2007/09/22/how-to-enter-password-as-secure-string.aspx

728x90
XML 파일 변환하는데 아래와 같이 계속 빈공간이 그대로 뽑혀서 캐난감 -ㅅ-

<!-- org.xml -->
<root>
<child>
<name>A</name>
</child>
<child>
<name>B</name>
</child>
</root>

<!-- 결과 -->
A
B

xsl:strip-sapce element를 이용하면 공백을 다 없애버리더라능.

<xsl:strip-space elements='child'/>

사이에 문자열 넣을거면 xsl:text element를 사용하면 됨

참조 - W3C XSL Transformations (XSLT) Version 1.1
http://www.w3.org/TR/2001/WD-xslt11-20010824/

728x90
회사에서 XML 데이터를 CSV 형태로 바꿀 일이 가끔 있는데
C++로 파싱해서 저장하는 프로그램을 만들었다.

프로젝트 생성하고 설정한 다음에 빌드하는게 귀찮더라는...
생각해보니 XSLT 써서 TEXT 파일로 컨버팅하면 될 것 같더라는...

C++ / C# / Perl 등 다양한 언어로 할 수 있겠지만
C++은 생산성이 떨어지고
C#은 어차피 컴파일해야 돌아가니 별 의미 없고
Perl은 다른 사람들이 문법을 모르니 -_-;;

.net 컴포넌트를 마음대로 가져다 쓸 수 있고
UI 작업도 가능하다고 하는 PowerShell 로 작업하기로 결정

아래와 같이 .net 객체 만들어서 transform 하면 끝 -ㅅ-

$script:xslt = new-object system.xml.xsl.xslcompiledtransform
  
## load xslt file
$xslt.load( $xslFilePath )
  
## transform
$xslt.Transform( $originalXmlFilePath, $outputFilePath )

출처 : http://huddledmasses.org/convert-xml-with-xslt-in-powershell/

앞으로는 각 변환 작업에 맞춰서 XSLT 만 작업하면 된다능 :)

몇 몇 거지같은 요소 빼고 파워쉘 만세!!
; 문서 보는게 C++, C# MSDN 보다 불편
; 실행할 때 security-policy 바꿔줘야하는 것
; include 같은 요소가 없는 것

728x90



회사에서 Exchange 서버 Storage 이동 후
새 메일이 오면 규칙이 5초 정도 뒤에 먹어서 난감했는데...
캐시된 Exchange 모드를 꺼버렸더니 원래대로 동작하더라는...

POP3 쓰다가 보안 때문에 없앨 꺼라고 Exchange로 이동했는데
POP3 쓰는 사람이 많아서 기존대로 유지되어버린...
Exchange로 이동하는 데 삽질을 생각하면 참 :(

728x90
C 드라이브 용량이 부족해서 어떤 폴더가 용량을 많이 차지하나 찾아보려고 하니
일일이 오른쪽 버튼 눌러서 검색하기가 귀찮 ;;;

찾아보니 ExplorerXP 라는 프로그램이 있더라는...

donate 버튼이 있는 걸로 봐서는 freeware 인 듯 ㅋㅋㅋ

http://www.explorerxp.com/
728x90
윈도우즈7 64bit 에서 VS2003을 써볼려고 했는데
Find in Files만 실행하면 Visual Studio가 먹통이 되네 ;;;

VS6.0은 지원하면서 -ㅅ-
VS2003은 윈도우7에서 지원하지 않는다고 함 ;;;

아래 글을 따르면 호환성 모드를 XP SP3나 VISTA로 수정하고
Visual Theme와 Desktop Composing을 막아야하나 봄 ;;
그리고 .net 어플리케이션 개발할 경우는 더 많은 재앙이 있다고 함 ;;

http://technikhil.wordpress.com/2010/01/12/visual-studio-2003-and-windows-7-can-get-along-really/


VS2008이나 VS2010로 옮겨야하나? ㅡㅜ

(2011.05.24)
* Find in Files 할 때 멈추는 문제
* devenv.exe 속성 > 호환성 > 설정 > '시각 테마 사용 안 함' 체크
* 권한 상승이 필요한 exe 디버그 실행 안되는 문제
* devenv.exe 속성 > 호환성 > 권한 수준 > '관리자 권한으로 이 프로그램 실행' 체크

(2011.05.27)
* ASP.net 1.1 을 VS2003.net 으로 윈도우7으로 개발할려면 XP mode를 이용하는 게 가장 빠른 방법같은 느낌 :( 

(2011.06.08)
* 디버그할 경우 devenv.exe가 pdb를 잡고 있어서 빌드가 안될 수 있음.
* handle과 awk를 이용해 handle을 close하는 스크립트를 이용하자.
* handle.exe .pdb | awk.exe "/devenv.exe/ { split($6, fd, \":\"); system(\"handle.exe -c \" fd[1] \" -y -p \" $3)}"
728x90
가끔 작업하다 보면 linked server로 구성된 환경을 가정하고 만든 스크립트 들을 만나게 되는데...
linked server 이름 바꾸다가 문제가 될 경우가 많아 잘 변경 안해주더라는...

A. 자기 자신을 다른 이름으로 linked server 설정할 필요가 있다는...

integrated security

EXEC sp_addlinkedserver
    @server        = 'self',
    @srvproduct     = '',
    @provider     = 'MSDASQL',
    @datasrc     = NULL,
    @location     = NULL,
    @provstr     = 'DRIVER={SQL Server};Server=(local); Initial Catalog=master;Integrated Security=SSPI;'


sql server security

EXEC sp_addlinkedserver
    @server        = 'self',
    @srvproduct     = '',
    @provider     = 'MSDASQL',
    @datasrc     = NULL,
    @location     = NULL,
    @provstr     = 'DRIVER={SQL Server};Server=(local); Initial Catalog=master;uid=sa;pwd=mypwd;'

출처 - http://www.nigelrivett.net/SQLAdmin/AddLinkedServer.html

B. 다른 방법으로는 별칭(Aliases)로 추가하고 별칭 이름으로 linked server를 만드는 방법도 있음
; Sql Server Configuration Manager 를 실행
; SQL Native Client 구성(Configuration) > 별칭(Aliases) 선택
; 오른쪽 마우스 클릭 후 새 별칭 선택...

728x90
노트북을 다시 회사에서 쓰고 있는데
키보드와 마우스를 왔다 갔다하는게 여간 번거로운게 아니라능...

회사 사람이 쓰고 있는 원격 키보드/마우스 공유 프로그램이 있길래 그걸 써보기로 결정

아래 설치법 참고해서 세팅하니 끝 -ㅅ-
모니터가 3개라 그런지 목에 무리가 가는 것 빼고는 ok



컴퓨터간 이동할 때 마우스 포인트가 위와 같은 식으로 표시되는게 좋다는...

Input Director라고 불리는 프로그램이고
제작사 홈페이지 - http://www.inputdirector.com/
설치법은 http://jwmx.tistory.com/1807 URL을 참조

윈도, Mac, Linux 를 같이 쓰는 경우는
시너지라는 프로그램을 쓰면 된다고 한다.

P.S 모니터 받침대나 좀 작은 넷북을 쓰고 싶은 생각도 있네 ;;;
728x90
회사에 MSN을 못 쓰게 해서 ebuddy라는 웹 메신져를 쓰고 있다.
웹 페이지 오른쪽에 광고가 나오는데...
최근에 아랍권 광고가 나오는데 소리 때문에 노이로제가 걸릴 지경.
플래쉬 플러그인을 끄고 쓰면 되긴하는데 플래쉬를 안 볼 수도 없어서...
그래서 생각해낸게 광고 페이지의 도메인을 다른 ip로 돌리는 방법

윈도우 host 파일에 (XP 기준 c:\windows\system32\drivers\etc\hosts) 다음 내용 추가
127.0.0.1    wad.adbasket.net

wad.adbasket.net이 그 광고 호출 URL인데 저 페이지 접근이 안되니 ㅋㅋㅋ

무료로 쓰니 광고 보여도 할말은 없다만
소리까지 나오는 플래쉬 광고는 제발 안했으면 좋겠다는
노이즈 마케팅인가? -ㅅ-
728x90

+ Recent posts