windows批处理运行应用程序并创建桌面快捷方式
高分求助,我有一个文件夹A,这个文件夹没有绝对路径,A里面有B.bat和C文件夹,现在我要用B.bat运行C文件夹中的D.exe程序并在桌面创建名称为“应用程序”的快捷方...
高分求助,我有一个文件夹A,这个文件夹没有绝对路径,A里面有B.bat和C文件夹,现在我要用B.bat运行C文件夹中的D.exe程序并在桌面创建名称为“应用程序”的快捷方式,第一次接触批处理,希望直接源码,完美源码可以加分!谢谢
展开
2个回答
展开全部
找到一些资料,不知道是不是你所需要的,希望能帮到你。
从网上搜集了一些“创建快捷方式”的批处理脚本,以供将来工作中参考:
一、示例为创建记事本的快捷方式到桌面
set path=%WINDIR%\notepad.exe
set topath="%USERPROFILE%\桌面\记事本.url"
echo [InternetShortcut] >> %topath%
echo URL="%path%" >> %topath%
echo IconIndex=0 >> %topath%
echo IconFile=%path% >> %topath%
二、利用批处理创建桌面快捷方式
goto :eof
Rem 以下为VbScript脚本
Set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop") :'特殊文件夹“桌面”
Rem 在桌面创建一个记事本快捷方式
set oShellLink = WshShell.CreateShortcut(strDesktop & "\记事本.lnk")
oShellLink.TargetPath = "notepad.exe" : '目标
oShellLink.WindowStyle = 3 :'参数1默认窗口激活,参数3最大化激活,参数7最小化
oShellLink.Hotkey = "Ctrl+Alt+e" : '快捷键
oShellLink.Ic : '图标
oShellLink.Description = "记事本快捷方式" : '备注
oShellLink.WorkingDirectory = strDesktop : '起始位置
oShellLink.Save : '创建保存快捷方式
Rem 在桌面创建一个 腾讯QQ 2007
set oShellLink = WshShell.CreateShortcut(strDesktop & "\腾讯QQ 2007 .lnk")
oShellLink.TargetPath = "D:\Tencent\QQ\QQ.exe" : '目标
oShellLink.WindowStyle = 3 :'参数1默认窗口激活,参数3最大化激活,参数7最小化
oShellLink.Hotkey = "Ctrl+Alt+q" : '快捷键
oShellLink.Ic : '图标
oShellLink.Description = "腾讯QQ 2007" : '备注
oShellLink.WorkingDirectory = strDesktop : '起始位置
oShellLink.Save : '创建保存快捷方式
Rem 在桌面创建一个“微软中国”的Url快捷方式
set oUrlLink = WshShell.CreateShortcut(strDesktop & "\百度搜索.url")
oUrlLink.TargetPath = "http://www.baidu.com/"
oUrlLink.Save
三、批处理桌面创建快捷方式
EXE型
S bat
echo off & cls
echo create_shortcut
start wscript -e:vbs "%~f0"
Exit S
End S
Set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
set oShellLink = WshShell.CreateShortcut(strDesktop & "\QQ.lnk")
oShellLink.TargetPath = "d:\QQ\QQ.exe"
oShellLink.WindowStyle = 3
oShellLink.Hotkey = "Ctrl+Alt+e"
oShellLink.IconLocation = "d:\QQ\QQ.exe, 0"
oShellLink.Description = "快捷方式"
oShellLink.WorkingDirectory = "d:\QQ"
oShellLink.Save
IP型
S bat
echo off & cls
echo create_shortcut
start wscript -e:vbs "%~f0"
Exit S
End S
Set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
set oShellLink = WshShell.CreateShortcut(strDesktop & "\学习天地.lnk")
oShellLink.TargetPath = "http://localhost:81"
oShellLink.WindowStyle = 3
oShellLink.Hotkey = "Ctrl+Alt+e"
oShellLink.IconLocation = "%SystemRoot%\system32\url.dll, 0"
oShellLink.Description = "快捷方式"
oShellLink.WorkingDirectory = "C:\Program Files\Internet Explorer"
oShellLink.Save
四、
set path=E:\other\QQ\qq.exe
echo [InternetShortcut] >>QQ.url
echo URL="%path%" >>QQ.url
echo IconIndex=0 >>QQ.url
echo IconFile=E:\other\QQ\qq.exe >>QQ.url
五、在桌面上创建某网站的快捷方式
@echo off
set lnkdir="%USERPROFILE%\桌面"
echo [InternetShortcut] >%lnkdir%\冲浪奥运专题.url
echo [InternetShortcut] >%lnkdir%\冲浪奥运频道.url
echo URL="http://www.cctvolympics.com" >>%lnkdir%\冲浪奥运专题.url
echo URL="http://www.fm73.com/dianshi/001/cctv5.htm" >>%lnkdir%\冲浪奥运频道.url
exit
六、
先来看看小文的.
@echo off
for /f "delims=" %%i in ("%cd%") do (
echo [InternetShortcut] >>"%USERPROFILE%\桌面\r.url"
echo URL="%%i\blog_backup.exe" >>"%USERPROFILE%\桌面\r.url"
echo IconIndex=0 >>"%USERPROFILE%\桌面\r.url"
echo IconFile="%%i\blog_backup.exe" >>"%USERPROFILE%\桌面\r.url"
)
开始没仔细看.后来试了一下,原来是利用了file(本地文件传输协议),但有个缺点,ie会把文件加载到ie缓存文件夹中执行,所以当为需要多个文件才能执行的绿色文件创建快捷方式时,运行会出错.
在来看看我的那个(不是我写的,在知道上看到的,分析后改的)
又改了,可以将任意文件拖放到该文件上,即可自动创建快捷方式,不需更改代码.
这个代码应该是里利用winrar的自解压功能,具体也没研究出来,贴上用到的rar命令行参数说明
@echo off
for %%a in (%1) do (
echo Path=%%~dpa>test.txt
echo Silent=^2>>test.txt
echo Overwrite=^1>>test.txt
echo Shortcut=D, %%~nxa, "\", %%a, %%~na>>test.txt
start /wait winrar.exe a -r -ep1 -m1 -sfx -ztest.txt test.exe %0
start /wait test.exe
del test.*
)
:: -r 包含子文件夹,可以使用命令:
:: a,u,f,m,x,e,t,p,v,l,c,cf 和 s.
:: 当使用命令 'a','u','f','m' 将处理在所有子目录中以及当前工作目
:: 录的中的文件。
:: 当使用命令 x,e,t,p,v,l,c,cf 或 s 将处理在子目录以及当前工
:: 作目录中所有压缩文件。
:: -ep1 从文件名中删除底层目录。不存储在命令行中输入的路径。
:: 例子:
:: tmp 目录中的所有文件和目录都将被添加到压缩文件'test'中,但是被压
:: 缩文件名路径不包含'tmp\'
:: rar a -ep1 -r test tmp\*
:: 这等价于下列命令:
:: cd tmp
:: rar a -r ..\test
:: cd ..
::-m1 最快 使用最快方式(低压缩)
:: -sfx[名称]
:: 创建自解压压缩文件。如果建立新压缩文件时使用此开关,自解压文件(使
:: 用 default.sfx 模块或在开关中指定)将被创建。在 Windows 版本中,
:: default.sfx 应该在 rar.exe 所在的目录中,在 Unix 中 - 在用户的 home
:: 目录中。在/usr/lib 或 /usr/local/lib 中。
:: 例子:
:: rar a -sfxwincon.sfx myinst
:: 使用 wincon.sfx 自解压模块创建自解压(SFX)压缩文件。
:: -z[f] 从文件<f>中读取压缩文件注释。如果你需要指定注释文本文件的字符
:: 集使用 -sc 开关。如果 <f> 没有指定, 注释从标准输入设备读取。
从网上搜集了一些“创建快捷方式”的批处理脚本,以供将来工作中参考:
一、示例为创建记事本的快捷方式到桌面
set path=%WINDIR%\notepad.exe
set topath="%USERPROFILE%\桌面\记事本.url"
echo [InternetShortcut] >> %topath%
echo URL="%path%" >> %topath%
echo IconIndex=0 >> %topath%
echo IconFile=%path% >> %topath%
二、利用批处理创建桌面快捷方式
goto :eof
Rem 以下为VbScript脚本
Set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop") :'特殊文件夹“桌面”
Rem 在桌面创建一个记事本快捷方式
set oShellLink = WshShell.CreateShortcut(strDesktop & "\记事本.lnk")
oShellLink.TargetPath = "notepad.exe" : '目标
oShellLink.WindowStyle = 3 :'参数1默认窗口激活,参数3最大化激活,参数7最小化
oShellLink.Hotkey = "Ctrl+Alt+e" : '快捷键
oShellLink.Ic : '图标
oShellLink.Description = "记事本快捷方式" : '备注
oShellLink.WorkingDirectory = strDesktop : '起始位置
oShellLink.Save : '创建保存快捷方式
Rem 在桌面创建一个 腾讯QQ 2007
set oShellLink = WshShell.CreateShortcut(strDesktop & "\腾讯QQ 2007 .lnk")
oShellLink.TargetPath = "D:\Tencent\QQ\QQ.exe" : '目标
oShellLink.WindowStyle = 3 :'参数1默认窗口激活,参数3最大化激活,参数7最小化
oShellLink.Hotkey = "Ctrl+Alt+q" : '快捷键
oShellLink.Ic : '图标
oShellLink.Description = "腾讯QQ 2007" : '备注
oShellLink.WorkingDirectory = strDesktop : '起始位置
oShellLink.Save : '创建保存快捷方式
Rem 在桌面创建一个“微软中国”的Url快捷方式
set oUrlLink = WshShell.CreateShortcut(strDesktop & "\百度搜索.url")
oUrlLink.TargetPath = "http://www.baidu.com/"
oUrlLink.Save
三、批处理桌面创建快捷方式
EXE型
S bat
echo off & cls
echo create_shortcut
start wscript -e:vbs "%~f0"
Exit S
End S
Set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
set oShellLink = WshShell.CreateShortcut(strDesktop & "\QQ.lnk")
oShellLink.TargetPath = "d:\QQ\QQ.exe"
oShellLink.WindowStyle = 3
oShellLink.Hotkey = "Ctrl+Alt+e"
oShellLink.IconLocation = "d:\QQ\QQ.exe, 0"
oShellLink.Description = "快捷方式"
oShellLink.WorkingDirectory = "d:\QQ"
oShellLink.Save
IP型
S bat
echo off & cls
echo create_shortcut
start wscript -e:vbs "%~f0"
Exit S
End S
Set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
set oShellLink = WshShell.CreateShortcut(strDesktop & "\学习天地.lnk")
oShellLink.TargetPath = "http://localhost:81"
oShellLink.WindowStyle = 3
oShellLink.Hotkey = "Ctrl+Alt+e"
oShellLink.IconLocation = "%SystemRoot%\system32\url.dll, 0"
oShellLink.Description = "快捷方式"
oShellLink.WorkingDirectory = "C:\Program Files\Internet Explorer"
oShellLink.Save
四、
set path=E:\other\QQ\qq.exe
echo [InternetShortcut] >>QQ.url
echo URL="%path%" >>QQ.url
echo IconIndex=0 >>QQ.url
echo IconFile=E:\other\QQ\qq.exe >>QQ.url
五、在桌面上创建某网站的快捷方式
@echo off
set lnkdir="%USERPROFILE%\桌面"
echo [InternetShortcut] >%lnkdir%\冲浪奥运专题.url
echo [InternetShortcut] >%lnkdir%\冲浪奥运频道.url
echo URL="http://www.cctvolympics.com" >>%lnkdir%\冲浪奥运专题.url
echo URL="http://www.fm73.com/dianshi/001/cctv5.htm" >>%lnkdir%\冲浪奥运频道.url
exit
六、
先来看看小文的.
@echo off
for /f "delims=" %%i in ("%cd%") do (
echo [InternetShortcut] >>"%USERPROFILE%\桌面\r.url"
echo URL="%%i\blog_backup.exe" >>"%USERPROFILE%\桌面\r.url"
echo IconIndex=0 >>"%USERPROFILE%\桌面\r.url"
echo IconFile="%%i\blog_backup.exe" >>"%USERPROFILE%\桌面\r.url"
)
开始没仔细看.后来试了一下,原来是利用了file(本地文件传输协议),但有个缺点,ie会把文件加载到ie缓存文件夹中执行,所以当为需要多个文件才能执行的绿色文件创建快捷方式时,运行会出错.
在来看看我的那个(不是我写的,在知道上看到的,分析后改的)
又改了,可以将任意文件拖放到该文件上,即可自动创建快捷方式,不需更改代码.
这个代码应该是里利用winrar的自解压功能,具体也没研究出来,贴上用到的rar命令行参数说明
@echo off
for %%a in (%1) do (
echo Path=%%~dpa>test.txt
echo Silent=^2>>test.txt
echo Overwrite=^1>>test.txt
echo Shortcut=D, %%~nxa, "\", %%a, %%~na>>test.txt
start /wait winrar.exe a -r -ep1 -m1 -sfx -ztest.txt test.exe %0
start /wait test.exe
del test.*
)
:: -r 包含子文件夹,可以使用命令:
:: a,u,f,m,x,e,t,p,v,l,c,cf 和 s.
:: 当使用命令 'a','u','f','m' 将处理在所有子目录中以及当前工作目
:: 录的中的文件。
:: 当使用命令 x,e,t,p,v,l,c,cf 或 s 将处理在子目录以及当前工
:: 作目录中所有压缩文件。
:: -ep1 从文件名中删除底层目录。不存储在命令行中输入的路径。
:: 例子:
:: tmp 目录中的所有文件和目录都将被添加到压缩文件'test'中,但是被压
:: 缩文件名路径不包含'tmp\'
:: rar a -ep1 -r test tmp\*
:: 这等价于下列命令:
:: cd tmp
:: rar a -r ..\test
:: cd ..
::-m1 最快 使用最快方式(低压缩)
:: -sfx[名称]
:: 创建自解压压缩文件。如果建立新压缩文件时使用此开关,自解压文件(使
:: 用 default.sfx 模块或在开关中指定)将被创建。在 Windows 版本中,
:: default.sfx 应该在 rar.exe 所在的目录中,在 Unix 中 - 在用户的 home
:: 目录中。在/usr/lib 或 /usr/local/lib 中。
:: 例子:
:: rar a -sfxwincon.sfx myinst
:: 使用 wincon.sfx 自解压模块创建自解压(SFX)压缩文件。
:: -z[f] 从文件<f>中读取压缩文件注释。如果你需要指定注释文本文件的字符
:: 集使用 -sc 开关。如果 <f> 没有指定, 注释从标准输入设备读取。
展开全部
B.bat内容如下:
start "" C\D.exe
mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""Desktop"") & ""\应用程序.lnk""):b.TargetPath=""%~dp0C\D.exe"":b.WorkingDirectory=""%~dp0C\"":b.Save:close")
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询