2011-10-02 33 views
0

例如,我有2个exe的。让我们称他们为1.exe和2.exe,以保持简单。 我想制作一个zip文件,里面有3个东西,1.exe,2.exe和setup.bat。批处理:运行exe,将文件复制到appdata,并将其启动

首先,我想知道用户没问题,我们开始第一个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至极是在同一地图的设置.bat到%appdata%
3.我该如何正确添加2.exe,现在在%appdata%中启动?

注意:只使用C:\documents and settings\all users\desktop\1.exe是行不通的。我希望它能够以各种语言工作,并且在某些语言中文件夹可能被称为不同。

+0

%〜dp0将展开到命令文件所在的目录,即使它不是当前目录。 –

+1

批处理语言是绝望的,使用正确的安装程序 –

回答

1

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

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

1

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

就你而言,你需要在启动文件夹中创建一个程序快捷方式(.LNK文件)。有两部分。

  1. 创建快捷方式。不幸的是,没有办法仅使用windows命令创建快捷方式。你需要依赖第三方工具,有许多免费的命令行工具可以做到这一点;或写你自己的。

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

所以把所有拼凑在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 Setuphttp://www.jrsoftware.org/

Inno Setup是Windows的免费安装程序。 Inno Setup于1997年首次推出,与功能设置和稳定性方面的许多商业安装人员相比甚至超过了它。

...

  • 支持单个EXE的创建安装程序,方便网上发行。磁盘跨越也支持。

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

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

  • 完整的卸载功能。

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

  • 在任何位置(包括开始菜单和桌面上)创建快捷方式。

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

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

  • ...

+0

我注意到你可以在你的程序中添加注册表键,并且我知道你可以添加一个注册表项来为启动程序添加一个程序。它非常有用。但我不想创建桌面图标,我只是想让它作为程序启动。有什么方法可以用你的程序来做到这一点?谢谢! – Thew

+0

是的,这正是我试图向您展示的方式,您可以将链接添加到启动文件夹 –

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项而不是将其复制到它不会在桌面上创建一个快捷方式启动文件夹中,你不需要任何超过批量多。

相关问题