2012-03-11 8 views
3

현재 프로그램을 업그레이드 할 때 기존 파일을 프로그램 디렉토리의 backup 폴더에 백업합니다.설치 관련 계산 문자열을 InnoSetup 스크립트에 어떻게 추가합니까?

Source: "{app}\filename.exe"; DestDir: "{app}\backup"; Flags: external skipifsourcedoesntexist uninsneveruninstall 

지정하거나 계산 문자열을 코드가

Source: "{app}\filename.exe"; DestDir: "{app}\backup{date}"; Flags: external skipifsourcedoesntexist uninsneveruninstall 

같은 것이 그래서 나

Source: "{app}\filename.exe"; DestDir: "{app}\backup{previous version}{date}"; Flags: external skipifsourcedoesntexist uninsneveruninstall 
+2

참조 [이 문서] (http://www.vincenzo.net/isxkb/index.php?title=Backup_of_application_directory) : 어쨌든, 이것은 내가 그것을 한 방법이다. – Deanna

+1

@Deanna, +1. 아주 좋은 예입니다. 어쩌면 당신은 그 코드를 답으로 게시해야합니다 (확실하지 않음). 측면 댓글, 나는 "{app}"디렉토리에 대한 백업이 매우 나쁜 생각이라고 생각합니다 (특히 프로그램 파일에있는 경우). '일반적인 앱 데이터'또는 '임시 폴더'가 더 좋은 아이디어입니다. – kobik

+0

@kobik : 게시 됨. 나는 그것을 사용하지 않거나 묵과하지만 어떤 사람들은 그것을 원한다고 생각한다. :) – Deanna

답변

4

볼 수 있습니다. thisthis도 읽으십시오. 예는

[Dirs] 
; create an empty folder... 
Name: "{app}\{code:MyDateTimeString}" 

[Code] 
function MyDateTimeString(Param: String): String; 
begin 
    Result := GetDateTimeString('yyyy.mm.dd_hh.nn.ss', #0, #0); 
end; 
4

추가 할 수있는 이전 버전에 대한 정보와 날짜를 결합 할 수있는 방법이 있나요 런타임 동적 값은 {code:...} constants입니다.

설치 폴더의 백업을 현재 날짜를 얻고 만들기의 예

Pascal Scripting: Scripted ConstantsPascal Scripting: Support Functions Reference을 읽어주십시오 ISXKB wiki

+0

그는 먼저 응답했기 때문에 @ 그레고리 (Gregory)를 수여해야했습니다. 단 35 점, 정말로 SO 초보자! – vfclists

+1

시간을 확인하십시오. :) 그렇습니다. 나는 더 많은 답변과 새로운 사용자들에게 투표하는 경향이 있습니다. – Deanna

+1

NSIS에서 벗어나 INNO로 빨리 가고 있기 때문에 나는 대부분이 시간 동안 inno-setup에 들어갔다. 따라서, 나는이 것을 도울 수 있었고, 비슷한 것을 시도하고 있었다. StackOverflow가 그렇게 큰 이유는 여기에 있습니다. 개념과 구현에! 모두에게 감사드립니다 (그리고 그 투표소로 차게하려고 노력하세요!) –