AutoHotKey(오토핫키) 설명서 EnvSet

Posted by 발전소장
2014. 8. 13. 21:23 AutoHotKey/Commands

EnvSet

환경 변수에 값을 설정

EnvSet, EnvVar, Value 

Parameters

인수명설명
EnvVar 환경 변수명.(「PATH」 등)
Value 설정하는 값

ErrorLevel

성공시는 「0」, 실패시는 「1」.

Remarks

설정된 환경 변수는,Run커멘드등에서 기동한 프로그램내로부터 참조할 수 있다.

일부의 커멘드의 인수로의 「%VarName%」(와)과 같은 변수의 전개에서는, 환경 변수도 통상의 변수와 같게 전개할 수 있다.

환경 변수의 길이는,OS에 의해32KB에 제한되고 있다.

Related

EnvUpdate, SetEnv, Run, RunWait

Example(s)

EnvSet,TestEnv,this is a test env
Run,%ComSpec% /K set TestEnv
;cmd.exe하지만 기동해,TestEnv에 격납된 내용을 표시한다


AutoHotKey(오토핫키) 설명서 EnvMult

Posted by 발전소장
2014. 8. 13. 21:22 AutoHotKey/Commands

EnvMult

변수의 값에 값을 걸어 적을 변수에 격납한다

EnvMult, Var, Value
Var*=Value

Parameters

인수명설명
Var 대상이 되는 변수명
Value 거는 값. (을)를 사용하는 일도 가능.

Remarks

Var(이)나Value의 값이 하늘이거나, 숫자 이외의 것에서는 글자 만문자열이었던 경우는, 「0」인 것으로서 계산된다.
숫자로부터 시작되어 있는 문자열이면, 선두의 숫자열(소수점 이하 포함한다)의 수치이다고 보인다.

Var(와)과Value의 양쪽 모두가 소수점을 포함하지 않는 숫자열의 경우, 결과는 정수 표기가 된다.
어느쪽이든가 소수점을 포함한 경우, 결과는 소수 표기가 된다.
결과의 표기 포맷은SetFormat그리고 설정할 수 있다.

Related

EnvAdd, EnvSub, EnvDiv, SetFormat, , If var is [not] type, SetEnv, bitwise operations (Transform)

Example(s)

EnvMult, MyCount, 2 
MyCount *= 2 ; Equivalent to above


AutoHotKey(오토핫키) 설명서 EnvGet

Posted by 발전소장
2014. 8. 13. 21:22 AutoHotKey/Commands

EnvGet

환경 변수로부터 값을 취득

EnvGet, OutputVar, EnvVarName

Parameters

인수명설명
OutputVar 취득한 값을 격납하는 변수명
EnvVarName 환경 변수명.(「PATH」 등)

Remarks

해당 환경 변수가 존재하지 않는 경우는,OutputVar(은)는 비운다

환경 변수의 길이는,OS에 의해32KB에 제한되고 있다.

Related

#NoEnv, EnvSet, EnvUpdate, SetEnv, Run, RunWait

Example(s)

EnvSet,TestEnv,this is a test env
Run,%ComSpec% /K set TestEnv
;cmd.exe하지만 기동해,TestEnv에 격납된 내용을 표시한다


AutoHotKey(오토핫키) 설명서 EnvDiv

Posted by 발전소장
2014. 8. 13. 21:21 AutoHotKey/Commands

EnvDiv

변수를 값으로 제산한다

EnvDiv, Var, Value
Var/=Value

Parameters

인수명설명
Var 대상이 되는 변수명
Value 나누는 수.(제로 이외)
(을)를 사용하는 일도 가능.

Remarks

실행시에 제로에 의한 제산이 발생하면, 에러 메세지가 표시된다.

Var(이)나Value의 값이 하늘이거나, 숫자 이외의 것에서는 글자 만문자열이었던 경우는, 「0」인 것으로서 계산된다.
숫자로부터 시작되어 있는 문자열이면, 선두의 숫자열(소수점 이하 포함한다)의 수치이다고 보인다.

Var(와)과Value의 양쪽 모두가 소수점을 포함하지 않는 숫자열의 경우, 결과는 정수 표기가 된다.(결과가 소수가 되어도, 정수에 말 수 있어 버리므로 주의)
어느쪽이든가 소수점을 포함한 경우, 결과는 소수 표기가 된다.
결과의 표기 포맷은SetFormat그리고 설정할 수 있다.

Related

EnvAdd, EnvSub, EnvMult, SetFormat, , If var is [not] type, SetEnv, bitwise operations (Transform)

Example(s)

EnvDiv, MyCount, 2 
MyCount /= 2 ; Equivalent to above


AutoHotKey(오토핫키) 설명서 EnvAdd

Posted by 발전소장
2014. 8. 13. 21:00 AutoHotKey/Commands

EnvAdd

변수에 값을 가산한다.

EnvAdd, Var, Value [,TimeUnits]
Var+=Value [,TimeUnits]
Var++

Parameters

인수명설명
Var 대상이 되는 변수명
Value 가산하는 수치.
도 사용 가능.
식을 사용하는 경우는,TimeUnits(을)를 사용할 수 없다.
TimeUnits Value의 일자 시각의 단위.
「Seconds」 「Minutes」 「Hours」 「Days」의 어떤 것인지를 지정.머리 글자 한 글자에서도 가능.
지정되면,Var(을)를YYYYMMDDHH24MISS형식의 일자 시각 포맷으로 간주해,Value그리고 지정한 수를TimeUnits그리고 지정한 단위로 가산한다.
예를 들어,Value(을)를100,TimeUnits(을)를 「Days」라고 하면,Value의 일자를100닛신.
부의 값을 가산하는 것으로, 감산도 가능.
Var의 값이 하늘의 경우, 현재의 일자 시각이 사용된다.
Var의 값이 일자 시각으로서 잘못하고 있는 경우,Var의 값은 비운다.

Remarks

「Var++」의 형식에서는,1만 값을 가산할 수 있다.
내부적으로는, 「Var+=1」라고 완전히 같다.

Var(이)나Value의 값이 하늘이거나, 숫자 이외의 것에서는 글자 만문자열이었던 경우는, 「0」인 것으로서 계산된다.
숫자로부터 시작되어 있는 문자열이면, 선두의 숫자열(소수점 이하 포함한다)의 수치이다고 보인다.

Var(와)과Value의 양쪽 모두가 소수점을 포함하지 않는 숫자열의 경우, 결과는 정수 표기가 된다.
어느쪽이든가 소수점을 포함한 경우, 결과는 소수 표기가 된다.
결과의 표기 포맷은SetFormat그리고 설정할 수 있다.

Related

EnvSub, EnvMult, EnvDiv, SetFormat, , If var is [not] type, SetEnv, FileGetTime

Example(s)

EnvAdd, MyCount, 2
MyCount += 2 ; Equivalent to above
var1 = ; Make it blank so that the below will use the current time instead.
var1 += 31, days
MsgBox, %var1% ; The answer will be the date 31 days from now.


AutoHotKey(오토핫키) 설명서 Else

Posted by 발전소장
2014. 8. 13. 20:59 AutoHotKey/Commands

Else

If계의 커멘드로 조건에 일치하지 않았을 때의 동작을 지정

Else

Remarks

If커멘드와 조건에 일치했을 때에 실행시키고 싶은 커멘드(혹은 블록)에 이어else(을)를 사용하면, 조건에 일치하지 않았을 때에 실행시키고 싶은 동작을 기술할 수 있다.

else의 후에는 스페이스에서 단락지어(콤마는 아니다)실행시키고 싶은 커멘드를 기술할 수 있다.
「{」(은)는 「else{」(와)과 같이 스페이스를 비우지 않고 기술해도 좋다.
else if...」라고 하도록(듯이) 하고,A(이)가 아니고B(이)라면……이라고 하는 분기를 기술할 수도 있다.

Related

See Blocks. Also, every IF-command can use ELSE, including IfWinActive, IfWinExist, IfMsgBox, IfInString, IfBetween, IfIn, IF, and IF (expression)

Example(s)

IfWinExist, Untitled - Notepad
{
	WinActivate
	Sleep, 1
}
else
{
	WinActivate, Some Other Window
	Sleep, 1
}


if x = 1
	Gosub, a1
else if x = 2 ; "else if" style
	Gosub, a2
else IfEqual, x, 3 ; alternate style
{
	Gosub, a3
	Sleep, 1
}
else Gosub, a4  ; i.e. Any single command can be on the same line with an ELSE.

;Also OK:
IfEqual, y, 1, Gosub, b1
else {
	Sleep, 1
	Gosub, b2
}


AutoHotKey(오토핫키) 설명서 Edit

Posted by 발전소장
2014. 8. 13. 20:58 AutoHotKey/Commands

Edit

현재의 스크립트를 에디터로 열린다

Remarks

스크립트를 에디터로 열린다.
관련지어로 「Edit」커멘드가 설정되어 있으면, 그 커멘드로 열린다.
없으면,notepad.exe그리고 열린다.

task tray 메뉴의 「Edit This Script」와 같다.

Related

Reload

Example(s)

Edit ; opens the script for editing. 


AutoHotKey(오토핫키) 설명서 DriveSpaceFree

Posted by 발전소장
2014. 8. 13. 20:57 AutoHotKey/Commands

DriveSpaceFree

드라이브의 빈 용량을메가바이트 단위로 취득

DriveSpaceFree, OutputVar, Path 

Parameters

인수명설명
OutputVar 결과를 격납하는 변수명.
path 드라이브의 패스

Remarks

NTFS의 교차점 기능을 이용하고 있으면, 올바르게 취득할 수 없는 경우가 있다

Related

Drive, DriveGet

Example(s)

DriveSpaceFree, FreeSpace, c:\


AutoHotKey(오토핫키) 설명서 DriveGet

Posted by 발전소장
2014. 8. 13. 20:56 AutoHotKey/Commands

DriveGet

드라이브의 각종 정보를 취득

DriveGet, OutputVar, Cmd [, Value]

Parameters

인수명설명
OutputVar 정보를 격납하는 변수명.
취득에 실패했을 경우는, 비운다.
Cmd, Value 취득하고 싶은 정보의 종류와 옵션.
아래와 같이를 참조

Cmd, Value

List [, Type]
드라이브 문자의 일람.
「CDEFG」(와)과 같이 존재하는 드라이브 문자를 연결한 문자열이 취득된다.
Type에는 드라이브의 종류를 지정.생략시는 모든 드라이브가 취득된다.
Type(으)로 지정할 수 있는 것은, 「CDROM」 「REMOVABLE」 「FIXED」(통상의HDD(은)는 이것)「NETWORK」 「RAMDISK」 「UNKNOWN」.
Capacity (혹은 Cap), Path
드라이브의 요령이MB단위로 취득된다.
Path에는 「C:\」 등을 지정.
빈 용량을 취득하려면 ,DriveSpaceFree(을)를 사용한다.
Filesystem (혹은 FS), Drive
드라이브의 파일 시스템의 종류를 취득.
취득 결과는 「FAT」 「FAT32」 「NTFS」 「CDFS」 「UDF」의 어느 쪽인가에 된다.
포맷 된 미디어가 들어가 있지 않은 드라이브에서는 취득에 실패한다.
Drive에는 「C:\」(와)과 같은 드라이브 네임이나, 「\\server1\dir1」(와)과 같은 네트워크상의 공유 폴더를 지정한다.
Label, Drive
드라이브의 볼륨 레벨을 취득.
Drive에는 「C:\」(와)과 같은 드라이브 네임이나, 「\\server1\dir1」(와)과 같은 네트워크상의 공유 폴더를 지정한다.
SetLabel:NewLabel, Drive
드라이브의 볼륨 레벨을 「NewLabel」(으)로 변경한다. Drive에는 「C:\」(와)과 같은 드라이브 네임을 지정.
이 커멘드를 사용하는 경우,OutputVar(은)는 생략 한다.
Serial, Drive
드라이브의 일련 번호를 정수치로 취득.
Drive에는 「C:\」(와)과 같은 드라이브 네임이나, 「\\server1\dir1」(와)과 같은 네트워크상의 공유 폴더를 지정한다. SetFormat그리고 정수의 표시 형식을 변경할 수 있다.
Type, Path
드라이브의 종별을 취득.
취득 결과는 「CDROM」 「Removable」 「Fixed」(통상의HDD(은)는 이것)「Network」 「RAMDisk」 「Unknown」의 언젠가.
Status, Path
드라이브 상태를 취득.
취득 결과는 「Unknown」(포맷 되어 있지 않은 등)「Ready」(사용 가능)「NotReady」(미디어가 삽입되어 있지 않은 등)「Invalid」(존재하지 않는 패스나 접속할 수 없는 네트워크 드라이브)의 어느것인가.
StatusCD [, Drive]
CD(이)나DVD등의 광학 드라이브의 미디어 상태를 취득한다.
Drive하지만 생략 되면, 디폴트의 광학 드라이브 상태가 취득된다.
OutputVar에는 이하의 문자열이 격납된다.취득에 실패했을 경우는 비운다.
not ready
기입 실행중등의 이유에 의해, 드라이브에 액세스 할 수 없다
open
드라이브에 디스크가 들어가 있지 않은지, 트레이가 열리고 있다
playing
디스크를 재생중
paused
재생을 일시정지중
seeking
시크중
stopped
디스크는 들어가 있지만, 액세스 되어 있지 않다
광학 드라이브 이외의 드라이브에서는 이 서브 커멘드는 사용하지 못하고,OutputVar(은)는 비워,ErrorLevel(은)는 「1」(이)가 된다.
트레이를 닫은 직후의 미디어 인식중에 이 커멘드를 실행하면, 인식할 수 있게 될 때까지 스크립트가 정지한다.
현재로서는, 정지중은 hot key등이 효과가 없게 되어, 훅을 이용하고 있으면 키보드/마우스 조작에 래그가 발생한다.
Drive커멘드를 사용하는 것으로, 트레이를 배출/격납할 수 있다.

ErrorLevel

성공시는 「0」, 실패시는 「1」.

Related

DriveSpaceFree

Example(s)

; This is a working example script.
FileSelectFolder, folder, , 3, Pick a drive to analyze:
if folder =
	Exit
DriveGet, list, list
DriveGet, cap, capacity, %folder%
DrivespaceFree, free, %folder%
DriveGet, fs, fs, %folder%
DriveGet, label, label, %folder%
DriveGet, serial, serial, %folder%
DriveGet, type, type, %folder%
DriveGet, status, status, %folder%
MsgBox All Drives: %list%`nSelected Drive: %folder%`nDrive Type: %type%`nStatus: %status%`nCapacity: %cap% M`nFree Space: %free% M`nFilesystem: %fs%`nVolume Label: %label%`nSerial Number: %serial%


AutoHotKey(오토핫키) 설명서 Drive

Posted by 발전소장
2014. 8. 13. 20:56 AutoHotKey/Commands

Drive

광학 드라이브의 트레이의 개폐, 드라이브의 볼륨 레벨의 변경

Drive, Label [, Drive , NewLabel]
Drive, Eject [, Drive , Retract?]
Drive, Lock, Drive
Drive, Unlock, Drive

Drive, Label [, Drive , NewLabel]

드라이브의 볼륨 레벨을NewLabel(으)로 변경한다.
NewLabel(을)를 생략 하면, 볼륨 레벨없이 된다.
Drive에는, 드라이브 문자와 코론을 지정한다.(례:「C:」)(UNC(이)나 맙드드라이브도 지정 가능)
볼륨 레벨명을 취득하려면 , 이하와 같이 한다.

DriveGet, OutputVar, Label, C:

Drive, Eject [, Drive , Retract?]

CD(이)나DVD등의 광학 드라이브의 트레이를 배출/격납한다.
Drive(을)를 생략 했을 경우, 디폴트의 광학 드라이브가 조작된다.
열린 트레이를 되돌리는 경우, 제3인수에 「1」(을)를 지정한다.

Drive, Eject, G:, 1

열려 있는 트레이를 열려고 했을 경우나, 닫고 있는 트레이를 닫으려고 했을 경우, 조작은 성공으로 간주해진다(ErrorLevel하지만 「0」(이)가 된다).
광학 드라이브 이외의 드라이브를 조작하려고 했을 경우는, 이 커멘드는 동작하지 않고,ErrorLevel(은)는 「1」(이)가 된다.

이 커멘드를 실행한다는 것은, 트레이의 배출/격납이 종료할 때까지 스크립트는 정지한다.
현재로서는, 정지중은 hot key등이 효과가 없게 되어, 훅을 이용하고 있으면 키보드/마우스 조작에 래그가 발생한다.

열려 있는 트레이를 열려고 하면 커멘드가 즉석에서 종료하는 것을 이용하는 것으로, 아래의 예의 같게 닫고 있으면 열어, 열려 있으면 닫는다고 하는 조작을 실현할 수 있다.

#c::
Drive, Eject
; If the command completed quickly, the tray was probably already ejected.
; In that case, retract it:
if A_TimeSinceThisHotkey < 1000 ; Adjust this time if needed.
     Drive, Eject,, 1
return

DriveGet커멘드를 사용하는 것으로, 광학 드라이브의 동작 상황을 취득할 수 있다.

Drive, Lock, Drive

광학 드라이브의 트레이 배출을 금지한다.시스템 전체로 유효가 된다.
락을 실행한 스크립트 이외의 스크립트나 프로그램이 락을 해제하는 일도 가능.
락을 해제하는지, 시스템을 재기동할 때까지 락은 유효하게 된다.

Drive, Unlock, Drive

「Drive, Lock」(이)나 그 외의 이유로 락 된 드라이브의 락을 해제한다.
NT계에서는, 여러 차례 락을 걸칠 수 있었던 드라이브는, 락을 걸칠 수 있었던 회수만 언로크를 실시하지 않으면 배출 가능하게 안 된다.
드라이브가 락 되고 있는지 어떤지를 직접 조사하는 방법은, 없다.

ErrorLevel

정상 종료하면 「0」, 무엇인가 문제가 있으면 「1」

Related

DriveGet, DriveSpaceFree

Example(s)

Drive, Label, D:, BackupDrive
Drive, Eject,, 1 ; Retract (close) the tray of the default CD or DVD drive.