2011-10-02 216 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項而不是將其複製到它不會在桌面上創建一個快捷方式啓動文件夾中,你不需要任何超過批量多。

相關問題