-
NSIS script의 format카테고리 없음 2007. 12. 21. 16:57
나처럼 instruction을 잘 읽지 않는 사람을 위해서 format관련 Help파일을 해석해봅니다.(번역기 수준의 직역..ㅋ)
한글이 오히려 해석하기 어려운 경우가 있어서 영어원문도 동시에 입력해놓습니다.
커맨드
커맨드 라인은 '커맨드 [파라메터]' 형태로 이루어집니다.
예) File "myfile"
Commands
Commands lines are in the format 'command [parameters]'
File "myfile"
주석
주석은 ;나 #으로 시작됩니다. 커맨드라인 뒤에 주석을 입력할 수도 있습니다. 또한 C-style의 주석도 가능합니다.
; Comment # Comment # Comment \ Another comment line (see `Long commands` section below) /* Comment Comment */ Name /* comment */ mysetup File "myfile" ; Comment
;나 #을 파라메터로 사용하고 싶다면 큰따옴표를 사용해주십시오.
Comments
Lines beginning with ; or # are comments. You can put comments after commands. You can also use C-style comments to comment one or more lines.
; Comment # Comment # Comment \ Another comment line (see `Long commands` section below) /* Comment Comment */ Name /* comment */ mysetup File "myfile" ; Comment
If you want a parameter to start with ; or # put it in quotes.
플러그인
추가적인 플러그인을 사용하기 위해서는 plugin::commnad[parameters]를 사용하십시오.
예) nsExec::Exec "myfile"
Plug-ins
To call a plug-in, use 'plugin::command [parameters]'.
nsExec::Exec "myfile"
숫자
숫자로 취급되는 파라메터들은 10진수(숫자)나 16진수(0x로 시작되는경우, i.e. 0x12345AB), 혹은 8진수(0으로 시작되는 경우)로 표현될 수 있습니다.
색깔을 나타내는 경우에는 16진수 RGB형태로 나타내어야합니다. HTML에서의 표현과 비슷하나 #이 붙지 않습니다.
예) IntCmp 1 0x01 lbl_equal
SetCtlColors $HWND CCCCCC
Numbers
For parameters that are treated as numbers, use decimal (the number) or hexadecimal (with 0x prepended to it, i.e. 0x12345AB), or octal (numbers beginning with a 0 and no x).
Colors should be set in hexadecimal RGB format, like HTML but without the #.
IntCmp 1 0x1 lbl_equal SetCtlColors $HWND CCCCCC
문자공백이 들어가있는 문자열을 나타내는 경우에는 따옴표를 사용하십시오 :
MessageBox MB_OK "Hi There!"
따옴표는 파라메터 시작시에 사용되었을 때만 문자속성을 나타냅니다. 따옴표는 '(single), "(double), `(backword) 세가지 종류 모두가 사용가능합니다.
따옴표로 시작되는 문자열 내에서 동일한 따옴표를 사용하고 싶을 때는 $\을 이용할 수 있습니다.
예)
MessageBox MB_OK "I'll be happy" ; 문자열 내에 ' 가 들어가는 경우
MessageBox MB_OK 'And he said to me "Hi there!"' ; 문자열 내에 " 가 들어가는 경우
MessageBox MB_OK `And he said to me "i'll be happ!"` ; 문자열 내에 ' 와 " 가 들어가는 경우
MessageBox MB_OK "$\"A quote from a wise man$\" said the wise man" ; $\를 사용하는 경우
문자열 내에서 줄바꿈, 탭삽입을 하고 싶을 때는 $\r (캐리지 리턴), $\n (뉴라인), $\t (탭)을 사용하면 됩니다.
Strings
To represent strings that have spaces, use quotes:
MessageBox MB_OK "Hi there!"
Quotes only have the property of containing a parameter if they begin the parameter. They can be either single quotes, double quotes, or the backward single quote.
You can escape quotes using $\:
MessageBox MB_OK "I'll be happy" ; this one puts a ' inside a string MessageBox MB_OK 'And he said to me "Hi there!"' ; this one puts a " inside a string MessageBox MB_OK `And he said to me "I'll be happy!"` ; this one puts both ' and "s inside a string MessageBox MB_OK "$\"A quote from a wise man$\" said the wise man" ; this one shows escaping of quotes
It is also possible to put newlines, tabs etc. in a string using $\r, $\n, $\t etc.
변수
변수는 $문자로 시작됩니다. 변수를 사용하기 위해서는 반드시 선언을 먼저 해주어야합니다.
예) Var MYVAR
StrCpy $MYVAR "myvalue"
Variables
Variables start with $. User variables should be declared.
Var MYVAR StrCpy $MYVAR "myvalue"
롱커맨드
여러 줄에 걸쳐서 커맨드를 입력할 때는 백슬래쉬(\)를 줄의 끝에 넣습니다. 이 경우에 한줄로 취급됩니다.
예) CreateShortCut "$SMPROGRAMS\NSIS\ZIP2EXE project workspace.lnk" \
"$INSTDIR\source\zip2exe\zip2exe.dsw"
MessageBox MB_YESNO|MB_ICONQUESTION \ "Do you want to remove all files in the folder? \ (If you have anything you created that you want \ to keep, click No)" \ IDNO NoRemoveLabel
주석에서도 백슬래쉬를 써서 한줄로 취급하기가 가능합니다. 하지만 혼란의 여지가 있으니 사용을 피하십시오.
예)# A comment \ still a comment here...
Long commands
To extend a command over multiple lines, use a backslash (\) at the end of the line. The next line will effectively be concatenated to the end of it. For example:
CreateShortCut "$SMPROGRAMS\NSIS\ZIP2EXE project workspace.lnk" \ "$INSTDIR\source\zip2exe\zip2exe.dsw" MessageBox MB_YESNO|MB_ICONQUESTION \ "Do you want to remove all files in the folder? \ (If you have anything you created that you want \ to keep, click No)" \ IDNO NoRemoveLabel
Line extension for long commands works for comments as well. It can be a bit confusing, so it should be avoided.
# A comment \ still a comment here...
설정파일
"nsisconf.nsh" 파일이 config 디렉토리에 존재하면, 이 파일은 모든 스크립트(/NOCONFIG 옵션을 쓰는 경우는 제외)에 포함되게 됩니다. Windows운영체제에서는 config디렉토리는 makesis.exe가 존재하는 디렉토리와 동일합니다.
다른 플랫폼에서는 이 디렉토리는 인스톨시에 디폴트로 SPREFIX/etc 로 설정됩니다. 실행시에 config폴더를 변경할 수 있는 방법도 있습니다. 자세한 내용을 Help파일을 참조하시길~
Configuration file
If a file named "nsisconf.nsh" in the config directory exists, it will be included by default before any scripts (unless the /NOCONFIG command line parameter is used). The config directory on Windows is the same directory as makensis.exe is in. On other platforms this is set at install time and defaults to $PREFIX/etc/. You can alter this at runtime, see section 3.1.3 for more information.