NSIS 스크립트 빌더의 일부로 files.txt라는 파일에 현재있는 파일 이름 목록이 있습니다. 내용의 예는 나는 그들이이처럼 보이는 끝낼 수 있도록 배치 파일을 사용하여 파일의 목록을 처리하려고배치 파일 NSIS 설치자 용 텍스트 파일 수정
c:\myfolder\assets\startup.xml
c:\myfolder\assets\begin.exe
c:\myfolder\assets\begin.swf
c:\myfolder\assets\resources\assets\text\help.pdf
c:\myfolder\assets\resources\assets\text\license.rtf
c:\myfolder\assets\resources\assets\swf\piano.swf
c:\myfolder\assets\resources\assets\swf\numbers.swf
c:\myfolder\assets\resources\section1\resource1\item1.jpg
c:\myfolder\assets\resources\section1\resource1\item2.jpg
c:\myfolder\assets\resources\section4\resource1\item7.jpg
c:\myfolder\assets\resources\section4\resource1\item8.jpg
...
SetOutPath "$INSTDIR"
File "c:\myfolder\assets\startup.xml"
SetOutPath "$INSTDIR"
File "c:\myfolder\assets\begin.exe"
SetOutPath "$INSTDIR"
File "c:\myfolder\assets\begin.swf"
SetOutPath "$INSTDIR\resources\assets\text"
File "c:\myfolder\assets\resources\assets\text\help.pdf"
SetOutPath "$INSTDIR\resources\assets\text"
File "c:\myfolder\assets\resources\assets\text\license.rtf"
SetOutPath "$INSTDIR\resources\assets\swf"
File "c:\myfolder\assets\resources\assets\swf\piano.swf"
SetOutPath "$INSTDIR\resources\assets\swf"
File "c:\myfolder\assets\resources\assets\swf\numbers.swf"
SetOutPath "$INSTDIR\resources\section1\resource1"
File "c:\myfolder\assets\resources\section1\resource1\item1.jpg"
SetOutPath "$INSTDIR\resources\section1\resource1"
File "c:\myfolder\assets\resources\section1\resource1\item2.jpg"
SetOutPath "$INSTDIR\resources\section4\resource1"
File "c:\myfolder\assets\resources\section4\resource1\item7.jpg"
SetOutPath "$INSTDIR\resources\section4\resource1"
File "c:\myfolder\assets\resources\section4\resource1\item8.jpg"
내가 가지고 ... 다음과 같습니다 몇 가지 시도를했지만 실제로 해결책을 찾지 못했습니다. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까?
UPDATE
좋아, 나는 약간 아래 배치 파일 ...
dir "c:\n\assets" /b /s > "c:\n\original.txt"
type "c:\n\original.txt" | findstr \. > "c:\n\filelist.txt"
@echo off
setlocal EnableDelayedExpansion
SET PATH=C:\n
set INSTDIR="c:\n\assets\"
(for /F "delims=" %%a in (filelist.txt) do (
set "filePath=%%~DPa"
set "outPath=!filePath:%INSTDIR%=!"
if defined outPath set "outPath=\!outPath:~0,-1!"
echo SetOutPath "$INSTDIR!outPath!"
echo File "%%a"
)
) > "c:\n\result.txt"
REM move /Y c:\result.txt files.txt
내가 주로 공간을 허용하는 금리 변화의 몇 가지를 만들어을 수정 한 그렇게 Aacini의 게시물에서 진행 NSIS에서 호출 될 때 모든 것이 올바르게 작동하도록 경로를 설정합니다. 내가 지금 직면하고있는 문제는 대신 ....
SetOutPath "$INSTDIR\assets"
File "c:\my folder\assets\startup.xml"
내가 얻을 ....
SetOutPath "$INSTDIR\c:\my folder\assets"
File "c:\my folder\assets\startup.xml"
내가 이미징 것은 해결하기 정말 쉬운 수정 점이다하지만 난 내 머리를 당겨입니다 그것을 바꾸려고 노력하는 것! 내가 도대체 뭘 잘못하고있는 겁니까?
을,하지만 난 프로세스가 파일 목록의 변화와 같은 자동 싶었다. NSIS에서 직접 파일 목록을 생성 할 수 있지만 텍스트 파일의 파일 작업은 내 상황에 더 쉽습니다. – fightstarr20
@ fightstarr20 : 어떻게 자동으로 실행되지 않습니까? (srcroot 부분 제외) – Anders
확실히! appendfile "$ % temp % \ testfilelist.txt"c : \ myfolder \ assets \ begin.swf $ \ n 필요한 파일의 각 새 집합에 대해 변경해야합니다 더하다? – fightstarr20