1

我正在尝试使用 IExpress EXE 将一些文件复制到“程序文件”中的目录中,但我正在努力让它工作。到目前为止,我有一个要复制的文件,以及 EXE 中的一个 .bat 文件。我知道 IExpress EXE 将它们的内容提取到,%\temp%\IXP000.TMP所以我认为我可以通过在 .bat 文件中包含以下内容轻松地将文件复制到 Program Files 文件夹:

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

但是当我运行 EXE 并查看时,我的程序文件中没有任何内容。

我究竟做错了什么?

4

3 回答 3

2

无需直接引用临时文件夹;假设当前工作目录:

@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

如果您有任何问题,请告诉我。

于 2015-02-23T20:05:01.847 回答
1

我知道 IExpress EXE 将它们的内容提取到 %\temp%\IXP000.TMP

不是真的。它提取到 temp 的子文件夹。

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

pause在批处理文件的末尾放置一个。检查子文件夹(我的是 1)将保持临时状态,此外您还会看到任何错误消息。确保Echo关闭。

于 2014-12-09T02:17:07.203 回答
0

这不是一个非常完整的答案(与拥有的不同)。但是我在 IExpress 和批处理文件中看到的大多数错误都是由人们直接调用它们引起的,而不是通过cmd.exe.

确保你像这样运行它:

cmd /c mybatch.bat
于 2015-09-12T11:13:20.853 回答