帮忙制作一个bat:自动复制一个exe文件覆盖到指定文件夹,并把覆盖后的exe创建桌面快捷方式。

帮忙制作一个bat:自动复制一个exe文件覆盖到指定文件夹,并把覆盖后的exe创建桌面快捷方式。要求把桌面或D盘或.......的“DeF.exe”文件复制并覆盖到C:\Program Files(x86)\ABC\DeF.exe,并把覆盖后的“DeFexe”创建桌面快捷方式。
如果Program Files(x86)文件夹不存在,则要求复制到C:\Program Files\ABC\DeF.exe,并创建桌面快捷方式。
如果Program Files(x86)文件夹存在,就不能复制到Program Files文件夹中。
说明:要求创建的bat文件兼容winXP、7、8、10。这个bat文件和DeF.exe在同一文件夹内

@echo off&title 创建程序并生成快捷方式 by 依梦琴瑶
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d %~sdp0
 
:::::::你可以更改以下相关值:::::::::
set App=DeF.exe
set App_Name=程序快捷方式名称
set App_Dir=ABC
:::::::你可以更改以上相关值:::::::::
 
set "Target=%ProgramFiles(x86)%"
if /i "%PROCESSOR_IDENTIFIER:~0,3%"=="x86" set "Target=%ProgramFiles%"
xcopy /y "%App%" "%Target%\%App_Dir%\" >nul
(echo Set WshShell = WScript.CreateObject("WScript.Shell"^)
echo strDesktop = WshShell.SpecialFolders("Desktop"^)
echo set oShellLink = WshShell.CreateShortcut(strDesktop ^& "\%App_Name%.lnk"^)
echo oShellLink.IconLocation = "%Target%,0"
echo oShellLink.TargetPath = "%Target%\%App_Dir%\%App%"
echo oShellLink.WorkingDirectory = "%Target%\%App_Dir%"
echo oShellLink.WindowStyle = 1
echo oShellLink.Save)>makelnk.vbs
makelnk.vbs
del /f /q makelnk.vbs
exit

追问

非常感谢你的帮忙,使用正常,但快捷方式没显示LOGO,这个可以解决吗?

追答

这是因为我不知道软件真实的图标地址,所以使用了默认的参数,具体你可以更改
echo oShellLink.IconLocation = "%Target%,0"
这行里面的数字0,从1往上推,一个一个试试看,或者你通过exe文件给我,我帮你分析出图标编号。

或者你也可以单独制作一个ico图标,然后定义到刚刚那个代码中。

追问

试过了把数字“0”改至9,都是不行,看来要麻烦你帮处理一下了。百度网盘:http://pan.baidu.com/s/1bpLqzsr

还有一个问题:如图:

追答

已修改,请使用网页端访问该问题,下载附件。

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-06-15
@echo off
if exist "c:\Program Files(x86)\ABC\" ( copy A.exe "c:\Program Files(x86)\ABC\" && echo [InternetShortcut] >>a.url
echo URL=c:\Program Files(x86)\ABC\ >>a.url
echo IconIndex=29 >>a.url
echo IconFile=C:\windows\system32\shell32.dll >>a.url ) else (copy A.exe "c:\Program Files\ABC\" && echo [InternetShortcut] >>a.url
echo URL=c:\Program Files\ABC\ >>a.url
echo IconIndex=29 >>a.url
echo IconFile=C:\windows\system32\shell32.dll >>a.url)
pause
相似回答