'환경변수'에 해당되는 글 3건

  1. 2012.07.26 Windows 환경 변수 확인 및 설정 - SET
  2. 2010.07.07 InstallShiled Express 환경변수
  3. 2009.03.16 전체 APM 시스템의 UTF-8 설정하기 (1)
2012. 7. 26. 17:06

Windows 환경 변수 확인 및 설정 - SET

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\WINDOWS>HELP SET
cmd.exe 환경 변수를 보여주거나 설정하거나 지웁니다.

SET [변수=[문자열]]

 변수      환경 변수 이름을 지정합니다.
 문자열    변수에 할당할 문자열을 지정합니다.

매개 변수 없이 'SET'이라고 입력하면, 현재 환경 변수를 볼 수 있습니다.

명령 확장을 사용하면 SET는 아래와 같이 바뀝니다.

SET 명령은 변수 이름만으로 호출되며, = 기호나 값으로
그 변수의 값을 표시하지는 않습니다. 예를 들어,

   SET P

는 문자 'P'로 시작되는 모든 변수를 표시합니다.

SET 명령은 변수 이름을 현재 환경에서 찾을 수 없으?
ERRORLEVEL을 1로 설정합니다.

SET 명령에서는 환경 변수 이름에 = 기호를 사용할 수 없습니다.

SET 명령에는 아래와 같이 새로운 두 개의 스위치가 추가됩니다.

   SET /A 표현식
   SET /P 변수=[promptString]

/A 스위치는 = 기호의 오른쪽에 있는 문자열이
수식임을 지정합니다. 이는 계산되어 문자열로 변환되거나
지정한 변수의 새 값으로 만들어진 결과입니다.
표현식 평가기는 매우 간단하며 아래 연산을 지원합니다.

   ()          - 그룹 짓기
   ! ~ -               - 단일 연산자
   * / %               -  산술 연산자
   + -                 - 산술 연산자
   << >>               - 논리 이동
   &                   - 비트단위 and
   ^                   - 비트단위 상호 배제 or
   |                   - 비트단위 or
   = *= /= %= += -=    - 할당
     &= ^= |= <<= >>=
   ,                   - 식 구분 기호

논리 연산자를 사용하면 표현식 문자열을 인용 부호로 묶어야
합니다.  표현식에서 숫자가 아닌 문자열은 환경 변수 문자열로
취급하며, 그 값은 사용하기 전에 숫자로 변환됩니다. 환경 변수 이름이
지정퓸鄕嗤?현재 환경에서 정의되지 않았으면 0 값이 사용됩니다.
이렇게 하면 환경 변수 값을 가져오기 위해 % 기호를
모두 입력할 필요 없이 환경 변수 값으로 산술 연산을 수행할 수
있습니다. 명령 스크립트 밖의 명령 줄에서 SET /A를 실행하면,
표현식의 마지막 값이 표시됩니다. 할당 연산자의 왼쪽에
환경 변수 이름이 있어야 합니다.  숫자 값은 아무 접두어가 없으면
십진수이며, 접두어 0x는 16진수, 0은 8진수를
나타냅니다. 그러므로 0x12, 18는  022와 같습니다.
8진수는 혼동될 수 있다는 것에 주의하십시오: 08과 09는 
8, 9가 올바른 8진수가 아니므로 잘못된 수 입니다.

/P 스위치는 변수의 값을 사용자가 입력한 입력 줄에 설정하도록 
허용합니다. 입력 줄을 읽기 전에 지정한 promptString을 표시합니다. 
PromptString을 비어둘 수 있습니다.

환경 변수 대체를 다음과 같이 확장했습니다:

   %PATH:str1=str2%

은(는) "str2" 문자열을 가진 확장된 결과에 나타나는 각 "str1" 문자열을 
대체하는 PATH 환경 변수를 확장합니다. 확장된 출력에 나타나는 모든 
"str1" 문자열을 효과적으로 삭제하기 위해 "str2" 문자열을 비어둘 수
있습니다. "str1" 문자열이 별표(*)로 시작할 수 있습니다. 이 경우에는 
확장된 출력의 시작 부분에서부터 str1의 나머지 부분의 첫 문자열까지의 
모든 문자열을 일치시킵니다.

또한 확장용 하위 문자열을 지정할 수 있습니다.

   %PATH:~10,5%

은(는) PATH 환경 변수를 확장한 다음 확장된 결과의 11(10 오프세트)번째 
문자에서 시작한 5 문자만 사용합니다. 길이를 지정하지 않으면 기본값을 
변수 값의 나머지로 지정합니다. 두(오프세트 또는 길이) 수 모두 음수이면, 
사용한 수는 오프세트 또는 지정한 길이에 추가된 환경 변수 값의 
길이입니?

   %PATH:~-10%

은(는) PATH 변수의 마지막 10 문자를 추출합니다.

   %PATH:~0,-2%

은(는) PATH 변수의 2 문자만 제외한 모든 문자를 추출합니다.

지연된 환경 변수 확장명에 대한 지원이 추가되었습니다.  이 지원은 항상
기본적으로 사용할 수 없지만 /V 명령줄을 CMD.EXD로 전환하여 사용할 수 있거나
사용할 수 없게 될 수 있습니다.  CMD /?를 참조하십시오.

지연된 환경 변수 확장명은 텍스트의 줄을 실행할 때가 아니라 
읽을 때 발생한 현재 확장명의 한계를
극복하는데 유용합니다.  다음 예제는
직접 변수 확躍諮?나타나는 문제를 보여줍니다:

   set VAR=before
   if "%VAR%" == "before" (
       set VAR=after
       if "%VAR%" == "after" @echo If you see this, it worked
   )

양쪽 IF 설명에 있는 %VAR%가
첫 번째 IF 설명을 읽을 때 대체되고
논리적으로 복합문인 IF의 본문을 포함하기 때문에 메시지를
표시하지 않습니다. 그래서 복합문에 있는 IF가 결코 같을 수 없는
"before"과 "after"를 비교하고 있습니다.  유사하게, 다음 예제는
예상한 것처럼 작업하지 않습니다:

   set LIST=
   for %i in (*) do set LIST=%LIST% %i
   echo %LIST%

현재 디렉터리에 파일 목록을 만들지 않지만,
대신 LIST 변수를 최근에 찾은 파일에 설정합니다.
다신 한번, 이것은 %LIST% 변수가 FOR 설명을 읽을 때
한번 확장되었고 그때 LIST 변수가 비었기 때문입니다.
실행하고 있는 실제 FOR loop는:

   for %i in (*) do set LIST= %i

이것은 LIST를 최근에 찾은 파일에 설정합니다.

지연된 환경 변수 확장명은 실행 시간에 환경 변수를
확장하도록 다른 문자(느낌표)를 사용하도록
허용합니다.  지연된 변수 확장명을 사용할 수 있으면,
위의 예제가 의도된 대로 다음과 같이 작업하도록 쓰여질 수 있습니다:

   set VAR=before
   if "%VAR%" == "before" (
       set VAR=after
       if "!VAR!" == "after" @echo 이렇게 되면
   )

   set LIST=
   for %i in (*) do set LIST=!LIST! %i
   echo %LIST%

명령 확장을 사용하면 확장될 수 있으나 SET에 의해
표시되는 변수 목록에 나타나지 않는 몇몇의
동적 환경 변수가 있습니다. 이 변수 값은
변수 값이 확장될 때마다 동적으로 계산됩니다.
사용자가 변수를 이 이름 중 하나로 분명하게 정의하면
이 정의가 아래에 설명된 동적 변수를 무시합니다:

%CD% - 현재 디렉터리 문자열로 확장합니다.

%DATE% - DATE 명령과 같은 포맷을 사용하여 현재 날짜로 확장합니다.

%TIME% - TIME 명령과 같은 포맷을 사용하여 현재 시간으로 확장합니다.

%RANDOM% - 0과 32767 사이에 있는 임의 숫자로 확장합니다.

%ERRORLEVEL% - 현재 ERRPRLEVEL 값으로 확장합니다

%CMDEXTVERSION% - 현재 명령 프로세서 확장자 버전 번호로
   확장합니다.

%CMDCMDLINE% - 명령 프로세서를 호출하는 원본 명령줄로
   확장합니다.



C:\WINDOWS>HELP SETLOCAL
일괄 컥臼【?환경 변경의 지역화를 시작합니다. SETLOCAL이 시작된 후 일어난 환경 변경은 일괄 파일에만 
유효합니다.
이전 설정으로 복구하려면 ENDLOCAL을 사용해야 합니다.  배치 스크립트 끝에
도달하면, 암시적인 ENDLOCAL이 배치 스크립트가
만든  모든 특별한 SETLOCAL 명령어를 실행합니다.

SETLOCAL

명령 확장을 사용하면 SETLOCAL는 아래와 같이 바뀝니다.

SETLOCAL 일괄 명령은 선택적인 인수를 받아들이게 되는데,
인수는 ENABLEEXTENSIONS나 DISABLEEXTENSIONS가 될 수 있습니다.
이렇게 하면 SETLOCAL 명령에 앞서 설정한 것?관계 없이 대응되는
ENDLOCAL 명령이 나타날 때까지 명령 처리 확장을 사용하거나 사용하지 않습니다.

SETLOCAL 명령은  인수가 주어지면 ERRORLEVEL값을 설정합니다.
두개의 올바른 인수 중 하나가 주어지고 다른 하나가 주어지지 않으면 0이
됩니다. 이것으로 아래와 같은 기법을 사용하여 일괄 스크립트에서 확장을
사용 가능한지를 결정할 수 있습니다.

VERIFY OTHER 2>nul
   SETLOCAL ENABLEEXTENSIONS
   IF ERRORLEVEL 1 echo 확장을 사용할 수 없습니다.

이것은 CMD.EXE, SETLOCAL의 이전 버전에ERRORLEVEL 값이
설정되?않았기 때문에 작동합니다. 잘못된 인수와 함께 VERIFY 명령을
사용하면 ERRORLEVEL 값이 0이 아닌 값으로 초기화됩니다.



C:\WINDOWS>HELP SHIFT
일괄 파일에서 바꿀 수 있는 매개 변수의 위치를 바꿉니다.

SHIFT [/n]

명령 확장을 사용하면, SHIFT 명령은 n(n은 0에서 8사이의 수)째
인수에서 이동을 시작하는 /n 스위치를 지원합니다. 예를 들어:

 SHIFT /2

는 %3을 %2로, %4를 %3으로, %1을 %0으로 이동합니다.


출처 : http://www.colorconsole.de/


Trackback 0 Comment 0
2010. 7. 7. 23:19

InstallShiled Express 환경변수



인스톨쉴드 환경변수 설정

System Configuration 메뉴에서 Registry를 클릭 후 아래 경로를 생성한다.



그리고 Environment를 클릭 후 오른쪽에 Destination computer's registry data에 등록할 NAME에는 환경변수명을 입력하고 Data에 경로 환경변수가 사용할 경로를 입력한다.

<TARGETDIR>의 인스톨파일이 저장경로를 의미하며 <WINSYSDIR>은 Windows의 System 폴더를 의미한다.

 


출처 : http://blog.naver.com/godsfly


Trackback 0 Comment 0
2009. 3. 16. 16:59

전체 APM 시스템의 UTF-8 설정하기

종래에는 홈페이지가 자국인들만 이용할 것을 예상하고 제작하므로써 외국인 즉, 비한글 사용자들에 대한 서비스를 미쳐 염두에 두지 못하므로써 한글이 ?????$%^&( 처럼 깨져 보이는 무지함을 보였던 것이 사실입니다.


이제는 홈페이지 제작도 유니코드(UTF-8) 인코딩 방식이 세계적 추세이며 이러한 추세에 맞추어 MySql도 기본언어를 utf8(UTF-8 인코딩) 방식으로 변경하였으므로, 홈페이지를 종래 euc-kr 등 한글로만 표기하던 방식도 UTF-8 인코딩 방식으로 업데이트해야 할 때 입니다. UTF-8 인코딩 방식은 한국어, 일어, 중국어, 태국어, 아랍어 등 만국어 표기가 가능한 방식입니다.

APM에서 UTF-8을 구현하려면 꽤 많은 부분을 수정해야 합니다 .
다음은 APM에서 UTF-8 구현 방법과 소스코드를 첨부합니다.



원본 저자 아래 환경에서 적용 테스트 .
----------------
OS : WinXP SP2
Apache : httpd-2.0.52
PHP : php-5.0.3
MySQL : mysql-4.1.11  
----------------

wono77 같은 방식으로, 아래 환경에서 적용 테스트 성공.(글추가 2006년 5월 24일)

-----------------------------
OS : Linux Redhat 9.0
Apache : httpd-2.0.52-3

PHP : php-5.1.2
MySQL : mysql-5.1.7-beta

-----------------------------

1. apache 환경파일 편집 (httpd.conf)
2. php 환경파일 편집 (php.ini)
3. mysql 환경파일 편집 (my.cnf)
4. apache, mysql 서비스 재시작
5. mysql에서 캐릭터셋 확인 및 디비생성
6. php 소스코드에 mysql_query("set names utf8;"); 함수 추가
7. php 소스에 한글문자열이 있으면 파일저장할때 UTF-8 파일형식으로 저장
8. 웹브라우즈의 보기-인코딩-UTF-8로 선택

1. /etc/httpd/conf/httpd.conf 에서 캐릭터셋 수정
/*------------
AddDefaultCharset UTF-8

2. /etc/php.ini 에서 캐릭터셋 수정
/*------------
;default_charset = "iso-8859-1"
default_charset = "utf-8"

3. /etc/my.cnf 에서 캐릭터셋 수정
/*------------
[client]
#password = your_password
default-character-set=utf8

[mysqld]
init_connect=SET collation_connection = utf8_general_ci
init_connect=SET NAMES utf8
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci

[mysql]
default-character-set=utf8

4. 환경변수를 모두 수정후 apache 및 mysql 서비스 재시작
/*------------

5. mysql에서 캐릭터셋 확인
/*------------
# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 247 to server version: 4.1.10a

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use test
Database changed
mysql> show variables like 'c%';
+---------+-----------+
| Variable_name | Value |
+---------+-----------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
| concurrent_insert | ON |
| connect_timeout | 5 |
+---------+-----------+
12 rows in set (0.00 sec)

* MySql에서 데이터베이스 생성
mysql>CREATE DATABASE 디비명 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;



--------------------------------------------------------------------------------------

* 추가(Putty 및 vi에서의 utf8설정) *

--------------------------------------------------------------------------------------
Putty 설정

설정에서 창>변환 을 선택한 다음, 수신한 데이터를 이 문자셋으로 가정이라고 되어 있는 박스에서 UTF-8을 선택한다.
이제 터미널에서는 보여지는 모든 문자셋을 UTF-8로 가정하게 된다.
쉘 설정

쉘 커맨드 라인에서 다음 명령을 실행한다.
export LANG="ko_KR.UTF-8"

로그인 될 때 항상 UTF-8을 사용하려면, 자신의 홈디렉토리의 .bashrc 파일에 위의 한 줄을 추가한다.
.bashrc 파일을 수정했을 경우,
source ~hayaloby/.bashrc

등의 명령을 내려서 곧바로 적용되게 할 수 있다.
이제 ls 등의 명령에서 리턴되는 값들을 비롯해서 쉘에서의 리턴문자열은 UTF-8로 표현된다.
vi 설정

이 상태에서
vi

를 입력해보면 글자가 깨져 보이게 된다.
vi 에디터의 인코딩을 설정해 주어야 하는데,
vi의 명령 중에 set을 이용해서 다음과 같이 설정할 수 있다.
set enc=UTF-8 set fenc=UTF-8 set tenc=UTF-8

enc는 vi에서 보여줄 때 사용되는 인코딩이고 tenc는 터미널에서 사용되는 인코딩이다. fenc는 수정하려는 파일의 인코딩이다.
항상 이렇게 작업을 하려면 홈디렉토리의 .vimrc 파일에 추가해 주면 된다.
파일 작업

이 상태에서 vi에디터로 작업하는 모든 파일은 UTF-8로 인코딩되어 저장된다.
'샾'을 입력해 보면 잘 입력됨을 확인할 수 있다.
확장완성형으로 돌아가기
Putty 설정
수신한 데이터를 CP949로 받는다.
쉘 설정
export LANG="ko_KR.eucKR"
vi 설정
set enc=euc-kr
set fenc=euc-kr
set tenc=euc-kr
를 순서대로 설정해 준다.

---------------------------------------------------------------------------------------

기억해야할 사항:



mysql 5.x에서 utf-8이 아닌, utf8로 표시해야함을 기억합시다~(4.x에서는 utf-8이었음)

아파치, php에서는 utf-8 입니다.

php의 mysql connect 소스에서도 $dbconn->query("set names utf8")을 해줘야 함을 기억하자.



by wono77. 2006-05-10.



* 기존의 EUC-KR DB를 UTF-8로 변경하기  *



euc-kr에서 작성된 db를 백업해서 utf8에 넣을 생각인데..이건 조금더 해보고 글을 올리겠습니다.

(Test해봤는데 잘되네요~^^)



euc-kr로 작성된 db를 백업해서 utf8 db에 넣을때는..

mysqldump를 뜬후에, 덤프뜬 파일을 다음 스크립트를 통해 utf8로 변환해줍니다.



스크립트명: iconv.sh

---------------------------------

#!/bin/sh

iconv -feuc-kr -tutf-8 $1 > out.txt

rm -rf $1

mv out.txt $1
---------------------------------



즉 다음과 같이 해주시면 out라는 덤프가 utf8로 바뀝니다.

$mysqldump -uroot -p패스워드 디비명 > out

$iconv.sh out



그 후, 이 덤프를 utf8 시스템의 utf8 db에 넣어주시면 됩니다.^_^



by wono77. 2006-05-11.



* 기존의 EUC-KR 소스를 UTF-8로 변경하기  *



위의 iconv.sh 스크립트로 해당 소스를 하나씩 변경해주시면 됩니다.

전체 폴더의 소스 바꾸는 쉘스크립트는 아래와 같습니다.....=ㅂ=a;;;

(단, 이때 iconv가 적용안되는 문자셋에 대해 파일이 날아가므로,

iconv의 옵션 중 IGNORE가 필요합니다.

-IGNORE 옵션으로는 테스트 안해봄.

-실제 아래 전체 디렉토리 바꾸기에선 파일은 존재하지만,

중간 내용이 날아가는 문제 몇발생했음)



#!/bin/sh
for i in `ls $1`; do
    newname=`echo $i | tr "[A-Z]" "[a-z]"`
    iconv -feuc-kr -tutf-8 $1/$i > out.txt
    rm -rf $1/$i
    mv out.txt $1/$i
done

iconv -feuc-kr  -tutf8//IGNORE


위의 파일 하나 바꾸기 iconv.sh는 아래와 같이 사용합니다.

$iconv.sh test.php


수작업으로 하다가 가끔, iconv에 없는 아스키가 나와서, 에러가 뜨면서, 원본 화일이 뻑나는 경우는 있으니, 백업 받아두고 하세요. 주의하시길....

10에 한개는 나옵니다. 소스가 엄청길거나..특수문자등에서...(해결방법이 업그레이드된 iconv의 기능 옵션으로 어떻게 하는거 같던데..직접 테스트는 해보지 않아서 잘 모르겠네요..)^^;


VIM은, BOM(Byte Order Mark) 이 있는 UTF-8 파일은 자동으로 인식하지만, BOM이 없으면 인식하지 못하고 파일 속의 한글이 깨집니다.

  이때는 다음과 같이 인코딩을 수동으로 전환해 주면 됩니다.

 

VI : 인코딩 전환

    *  현재 편집중이라면 키보드의 Esc키를 누릅니다.
    *  콜론(:) 키를 눌러, 명령어 모드로 들어갑니다.

    *  set enc=utf8   ,  set enc=utf-8

 

VI : UTF-8 인코딩 전환

   * set tenc=korea
   * set enc=utf-8

      - tenc는 termencoding 값을 설정하는것이고
      - enc는 encoding 값을 설정하는 겁니다.

 

VI : 한글 완성형(euc-kr)으로 인코딩 전환

  * set enc=cp949
  * set enc=euc-kr

 

VI : 영문 모드로 인코딩 전환

 * set enc=cp437

 

 VI : 인코딩 설정

  .vimrc  에서

 set fileencodings=utf-8,euc-kr 만 하면 자동으로 utf-8인지 euc-kr인지 자동판별해서 

 fileencoding 값을 정해 줍니다

   저장하면 새파일이면 터미널의 인코딩대로 저장되고 있던파일이면 원래 파일 인코딩대로 저장됩니다.
   만약 인코딩을 바꾸려면
:set fileencoding=utf-8
:w

  하면 utf-8로 바뀌어서 저장됩니다.


출처 : http://blog.naver.com/sj99yang


Trackback 0 Comment 1
  1. Favicon of http://shapeace.tistory.com 테리 2010.07.21 12:17 address edit & del reply

    포스팅 내용 잘 봤습니다. 좋은 정보 담아갑니다.