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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了帮忙制作一个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

还有一个问题:如图:

追答

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

参考技术A @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

使用Bat自动打包并通过FTP发送到备份服务器——实战测试

这个bat文件要求本地安装有winrar解压软件,位置是:C:Program FilesWinRARWinRAR.exe

如果执行报错,请检查你复制我的代码是否有问题,有些复制粘贴进去后因为一些字符原因更改,粘贴后请检查是否和复制的一致。

 

rem 定时备份文件并FTP上传至备份服务器
rem 要备份的文件夹
set bak_webFile=D:Backup   ###目录包括一个斜杠都不能少
rem 临时文件夹
set bak_tmpFile=C:~UpTemprem 日志文件夹
set bak_logPath=C:~bak_logrem 生成的rar 文件名
set bak_bakFile=YYYYMMDD
rem 当前日期(格式YYYYMMDD)
set bak_date=%date:~0,4%%date:~5,2%%date:~8,2%
rem ftp信息
set bak_ftpServer=192.168.0.86    ##ftp的服务器ip地址
set bak_ftpUserName=idcicp        ##ftp的用户
set bak_ftpUserPass=idcicp        ###ftp的用户密码
set bak_timeStart=%time% 
md %bak_tmpFile%
md %bak_logPath%
echo -------- 开始压缩 [%bak_timeStart%] >%bak_logPath%log-%bak_date%.txt

"C:Program FilesWinRARWinRAR.exe" a -ag+%bak_bakFile% %bak_tmpFile% %bak_webFile% 

echo -------- 压缩完成,开始上传 [%time%/%bak_timeStart%] >>%bak_logPath%log-%bak_date%.txt
rem 生成ftp命令文件
echo open %bak_ftpServer% >ftp.up
echo %bak_ftpUserName%>>ftp.up
echo %bak_ftpUserPass%>>ftp.up
echo bin >>ftp.up
echo mkdir %bak_date% >>ftp.up
echo cd %bak_date% >>ftp.up
echo mput %bak_tmpFile%* >>ftp.up
echo bye >>ftp.up
FTP -s:ftp.up -i >>%bak_logPath%log-%bak_date%.txt
del ftp.up /q
del  %bak_tmpFile%* /q   ###删除临时压缩文件,避免磁盘空间占用

echo -------- 上传完成 [%time%/%bak_timeStart%] >>%bak_logPath%log-%bak_date%.txt

 

以上是关于帮忙制作一个bat:自动复制一个exe文件覆盖到指定文件夹,并把覆盖后的exe创建桌面快捷方式。的主要内容,如果未能解决你的问题,请参考以下文章

Oracle定时备份

在WINDOWS XP无法打开Tomcat中的Startup.bat,请帮忙找原因

BAT自动批处理写一个脚本查找指定软件安装目录并启动软件

如何在 Qt Creator 中制作 .exe 文件

制作一个BAT删除指定文件夹

如何使用bat批处理或cmd,:将一个文件复制为“多个副本“(增量备份,自动重命名)到指定目录