批处理:运行exe,将文件复制到appdata,并将其置于启动状态

时间:2011-10-02 01:15:25

标签: windows batch-file copy

例如,我有2个exe。我们称它们为1.exe和2.exe,以保持简单。 我想制作一个zip文件,包含3个内容,1.exe,2.exe和setup.bat。

首先,我想知道用户可以启动第一个exe(1.exe)。所以我们输入:

@echo off
cls
echo Are you sure you want to install 1.exe? 
echo If not, click exit right now. If you are okay with it,
pause

这是第一个问题。所以我们想要启动1.exe。如何启动1.exe,它与bat文件位于同一文件夹中?

好的,让我们继续吧。 1.exe完成后,我想复制2.exe,将其放在%appdata%,然后将其添加到启动。这就是第二个问题。我该怎么做。

所以问题是:
 1.如何启动1.exe,它与setup.bat在同一张地图中  2.如何将2.exe与setup.bat在同一地图中复制到%appdata%
 3.如何正确添加2. %appdata%现在启动?

注意:仅使用C:\documents and settings\all users\desktop\1.exe不起作用。我希望它能用于各种语言,在某些语言中,文件夹可能被称为不同的语言。

3 个答案:

答案 0 :(得分:1)

1.exe将运行1.exe,就像在命令行上一样。 copy 2.exe %appdata%将复制2.exe。 我不知道问题3意味着什么。

定义“各种语言的工作”?如果需要将参数传递给批处理文件,请执行以下操作:http://commandwindows.com/batch.htm

答案 1 :(得分:1)

你是对的,你永远不应该硬编码BAT文件中的“文档和设置”或“程序文件”,因为这些文件夹名称不“适用于各种语言”。您需要使用特殊文件夹ID或环境变量来引用它们。

在您的情况下,您需要在启动文件夹中创建程序快捷方式(.LNK文件)。分为两部分。

  1. 创建快捷方式。遗憾的是,无法仅使用Windows命令创建快捷方式。你需要依赖第三方工具,有很多免费的命令行工具可以做到这一点;或者自己写。

  2. 找到Startup文件夹并将快捷方式放在那里。有两个启动文件夹。 常用启动用户启动文件夹。选一个。然后,您需要使用%ALLUSERSPROFILE%\Start Menu\Programs\StartUp%USERPROFILE%\Start Menu\Programs\StartUp

  3. 因此,将所有部分放在SETUP.BAT中,它看起来就像这样......

    @echo off
    echo Are you sure you want to install 1.exe? 
    echo If not, click exit right now. If you are okay with it,
    pause
    1
    copy 2.exe %appdata%
    makelink %appdata%\2.exe %USERPROFILE%\Start Menu\Programs\StartUp\2.lnk
    

    一个建议。避免所有这些混乱。在我看来,你需要安装一个程序。如果是这样,我建议您尝试 Inno Setup http://www.jrsoftware.org/

    Inno Setup是Windows的免费安装程序。 Inno Setup于1997年首次推出,今天在功能集和稳定性方面可与竞争对手甚至超越许多商业安装人员。

    ...

    • 支持创建单个EXE以安装程序,以便于在线分发。磁盘跨越也受支持。

    • 标准Windows 2000 / XP风格的向导界面。

    • 可自定义的设置类型,例如完整,最小,自定义。

    • 完成卸载功能。

    • 文件安装:包括对“deflate”,bzip2和7-Zip LZMA / LZMA2文件压缩的​​集成支持。安装程序能够比较文件版本信息,替换正在使用的文件,使用共享文件计数,注册DLL / OCX和类型库,以及安装字体。

    • 在任何地方创建快捷方式,包括在“开始”菜单和桌面上。

    • 创建注册表和.INI条目。

    • 在安装之前,期间或之后运行其他程序。

    • ...

答案 2 :(得分:0)

这应该做你想要的。

@echo off
cls
echo Are you sure you want to install 1.exe? 
echo If not, click exit right now. If you are okay with it,
pause
start /wait 1.exe
xcopy 2.exe %appdata% /y
reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "2" /d %appdata%\2.exe

最后一行将创建一个reg条目,而不是将其复制到启动文件夹,该文件夹不会在桌面上创建快捷方式,除了批处理之外,您不需要任何其他内容。