Получение IExpress для установки, чтобы скопировать файлы в нужное место

Я пытаюсь получить IExpress EXE, который копирует некоторые файлы в каталог в "Program Files", но я изо всех сил пытаюсь заставить его работать. Пока у меня есть один файл, который я хочу скопировать, и один файл.bat в EXE. Я знаю, что IExpress EXE извлекает их содержимое в %\temp%\IXP000.TMP поэтому я подумал, что могу легко скопировать файл в папку Program Files, добавив в файл.bat следующее:

mkdir C:\"Program Files"\HybRIDS
C:\Windows\System32\xcopy %temp%\IXP000.TMP C:\"Program Files"\HybRIDS /i

Но когда я запускаю EXE и смотрю, в моих программных файлах ничего нет.

Что я делаю неправильно?

3 ответа

Нет необходимости ссылаться на временную папку напрямую; просто предположим текущий рабочий каталог:

@echo off
rem install.bat
mkdir %ProgramFiles%\HybRIDS
echo %ERRORLEVEL% created directory %ProgramFiles%\HybRIDS
copy * C:\"Program Files"\HybRIDS
echo %ERRORLEVEL% copied files
del C:\"Program Files"\HybRIDS\install.bat
echo %ERRORLEVEL% success?

Когда вы настраиваете sed для тестирования, убедитесь, что вы установили максимально ShowInstallProgramWindow=3 и правильно установите скрипт установки AppLaunched=cmd /c install.bat, Также добавьте pause заявление в конце пакетного сценария, как BambiLongGone, предложенный для тестирования. Я использовал следующий формат для обработки ошибок (при условии, что окно установки скрыто ShowInstallProgramWindow=1)

@echo off
REM install.bat    
mkdir %ProgramFiles%\HybRIDS 
REM mkdir may fail because the folder already exists - ignore errors.    

move * %ProgramFiles%\HybRIDS > temp.txt 2>&1
set i=%ERRORLEVEL%
REM check for errors!
if not %i%==0 (
    REM inform the user with a prompt (will not wait for it to close though...)
    start cmd /c^
        echo error occured during installation^
&       type temp.txt^
&       echo what to do next...^
&       pause
)
REM don't keep the install and temp.txt file
del %ProgramFiles%\install.bat
del %ProgramFiles%\temp.txt

Если у вас есть какие-либо вопросы, просто дайте мне знать.

Я знаю, что IExpress EXE извлекает их содержимое в%\temp%\IXP000.TMP

Неправда. Извлекает в подпапку temp.

mkdir "%ProgramFiles%\HybRIDS"
copy "%~dp0\IXP000.TMP" "%ProgramFiles%\HybRIDS"

Положить pause в конце командного файла. Будет проверяться временная папка (у меня 1), плюс вы увидите сообщения об ошибках. Удостовериться Echo выключен.

Это не очень полный ответ (в отличие от ответов владельцев). Но большинство ошибок, которые я видел с IExpress и пакетными файлами, вызваны людьми, вызывающими их напрямую, а не через cmd.exe,

Убедитесь, что вы работаете так:

cmd /c mybatch.bat
Другие вопросы по тегам