【问题标题】:Getting IExpress to install to copy files to right location让 IExpress 安装以将文件复制到正确的位置
【发布时间】:2015-02-06 19:24:59
【问题描述】:

我正在尝试使用 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 并查看时,我的程序文件中没有任何内容。

我做错了什么?

【问题讨论】:

  • 是否定义了%temp%?另外,请尝试在整个目标文件夹周围加上引号。
  • 啊这很尴尬 - 显然 xcopy 不在这个 Windows 机器上,或者无论如何都不在任何路径中:xcopy is not recognized as an internal or external command, operable program or batch file。也许我应该改用副本。
  • 您使用的是什么操作系统?我听说 xcopy 多年来一直被弃用,取而代之的是 Robocopy,但我不熟悉任何没有它的 Windows 版本。
  • 我想知道 %CD% 会比 %temp%\IXP000.TMP 更好吗?
  • 使用 %temp% 应该不会导致问题。你有什么错误吗? xcopy 会告诉你是否有任何文件被复制。

标签: windows batch-file installation archive iexpress


【解决方案1】:

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

不是真的。解压到 temp 的子文件夹中。

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

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

【讨论】:

  • 实际上 is 为真 - IExpress 确实提取到 %temp%\IXPnnn.TMP(其中 nnn 通常为 000,但会增加 1 直到找到目录未使用)。
【解决方案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

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

【讨论】:

    【解决方案3】:

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

    确保你像这样运行它:

    cmd /c mybatch.bat
    

    【讨论】:

      猜你喜欢
      • 2011-05-20
      • 2014-02-26
      • 1970-01-01
      • 2013-09-25
      • 1970-01-01
      • 2014-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多