[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] VBS如何把当前目录中的EXE程序批量创建快捷方式到指定文件夹?

如何用批处理解决在该批处理文件夹内把所有的EXE程序(含该文件夹内的子文件夹里的程序)批量创建快捷方式到指定文件夹。请高手帮忙!!!如下图示:

[attach]9487[/attach]
这个事情困扰我很久了 ,前一段时间都在折腾电脑,装机……带着移动硬盘在不同电脑里来回使用,在新电脑上使用过程中,我在硬盘里新建的便捷版工具里的快捷方式都不能使用了,原因是因为新的电脑识别硬盘的盘符不一样,导致快捷方式的路径不同,从而导致无法使用,由于软件量较多在不同电脑上使用的情况时而发生,请想到bat批处理是否可以做到。

于是,我百度了一下,还真有这个便捷的方式,然而我网上是代码复制做成BAT,使用时出错了,以下是具体代码及出错的图示!
  1. '& @echo off& for %%1 in (*.exe)do start wscript /e:vbs "%~F0" "%%~F1" "%%~nx1" "%%~DP1" "%userprofile%\desktop\"
  2. set ws = createobject("wscript.shell")
  3. set wind = ws.createshortcut(wscript.arguments(3) & wscript.arguments(1) & ".lnk")
  4. wind.targetpath = wscript.arguments(0): wind.workingdirectory = wscript.arguments(2): wind.save
复制代码
以下是出错的截图:提示:电脑无法保存快捷方式 代码80070003   

[attach]9435[/attach]

[attach]9442[/attach]

  PS:按照网上教程试了不管用 1.打开“注册表编辑器”。(开始菜单运行中输入regedit 确定就可以打开)

2.找到“注册表编辑器”中:HKEY_CLASSES_ROOT\lnkfile 在右边栏空白处点击→新建→字符串值 命名为 IsShortcut

3.关闭“注册表编辑器”,重启电脑后就问题解决了


求大神帮忙看看啦 。谢谢!!!!
1

评分人数

学以致用!不耻下问!

原因是因为新的电脑识别硬盘的盘符不一样

直接修改盘符不行吗?

TOP

回复 1# nevergiveup520


    用硬盘分区大师,将盘符改掉,一定要注意不要在pe等第三方系统更改,因为第三方系统更改盘符经常性失效,要在所使用的系统更改。。。
看看盘符是否被占用,占用就改回来。。。
等下我发百度云连接给你。。。

TOP

回复 2# DAIC


    这样做每次太麻烦了,如用批处理的话  ,一点就好了 !!
学以致用!不耻下问!

TOP

回复 3# 172788876


    谢谢你 ,但是我开始想用批处理解决这个问题!还有其他用途!!!
学以致用!不耻下问!

TOP

回复 1# nevergiveup520


    http://pan.baidu.com/s/1dDV6csp
百度云连接

TOP

回复 6# 172788876


    谢谢   !!!!!!
学以致用!不耻下问!

TOP

回复 1# nevergiveup520

同样提示出错   ,崩溃啊 !
  1. @echo off
  2. echo set ws = createobject("wscript.shell")>lnk.vbs
  3. echo set lnk=ws.createshortcut(wscript.arguments(0))>>lnk.vbs
  4. echo lnk.targetpath=(wscript.arguments(1))>>lnk.vbs
  5. echo lnk.save>>lnk.vbs
  6. for /f "tokens=*" %%i in ('dir /a /b *.exe') do (
  7. lnk.vbs "D:\Users\Desktop\常用软件\%%~ni.lnk" "%%~fi"
  8. )
  9. del lnk.vbs
复制代码
学以致用!不耻下问!

TOP

你的路径是否正确?

TOP

回复 8# nevergiveup520


    D:\Users\Desktop\常用软件\
你的D盘有这个路径吗???
其实批处理我也不懂,但是你这路径我大概明白
D盘\用户\桌面\常用软件\
我也认为是你路径错了。。。

TOP

回复 8# nevergiveup520
  1. set "back_d=c:\000"
  2. set "back_dir=c:\000\001.bat"
  3. del /q "c:\001.lnk"
  4. ;创建文件的快捷方式(普通位置)
  5. (echo Set objShell=CreateObject^("WScript.Shell"^)
  6. echo Set objlink=objShell.CreateShortcut^("c:\001.lnk"^)
  7. echo objlink.Hotkey="CTRL+Q"
  8. echo objlink.WindowStyle=3
  9. echo objlink.TargetPath="%back_dir%"
  10. echo objlink.WorkingDirectory="%back_d%"
  11. echo objlink.Save
  12. )>"mysendto.vbs"
  13. start /wait "" "mysendto.vbs"
  14. del "mysendto.vbs"
复制代码

TOP

回复 10# 172788876


    有这个 路径的  我自己把桌面的路径改了!!
学以致用!不耻下问!

TOP

回复 9# pcl_test


    路径正确的  ,我把默认路径改过了!
学以致用!不耻下问!

TOP

回复 8# nevergiveup520
  1. del /q "%userprofile%\「开始」菜单\注销.lnk"
  2. rem 创建exe文件的lnk快捷方式
  3. ::指定路径和名称
  4. set "LnkFile=%userprofile%\「开始」菜单\注销.lnk"
  5. ::指定主程序
  6. set "TargetPath=%SystemRoot%\system32\logoff.exe"
  7. ::指定起始位置
  8. set "WorkingDirectory=%SystemRoot%\system32"
  9. ::指定快捷键
  10. set "Hotkey=Ctrl+Shift+L"
  11. ::指定图标
  12. set "IconLocation=%windir%\system32\shell32.dll,44"
  13. del "%LnkFile%" /f /q >nul 2>nul
  14. call :CreateShort "%LnkFile%" "%TargetPath%" "%WorkingDirectory%" "%HotKey%" "%IconLocation%"
  15. ::Arguments              目标程序参数
  16. ::Description            快捷方式备注
  17. ::FullName               返回快捷方式完整路径
  18. ::Hotkey                 快捷方式快捷键
  19. ::IconLocation           快捷方式图标,不设则使用默认图标
  20. ::TargetPath             目标
  21. ::WindowStyle            窗口启动状态
  22. ::WorkingDirectory       起始位置
  23. :CreateShort
  24. mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(""%~1""):b.TargetPath=""%~2"":b.WorkingDirectory=""%~3"":b.HotKey=""%~4"":b.IconLocation=""%~5"":b.Save:close")
复制代码

TOP

回复 9# pcl_test


    源代码的路劲是自动查找的"%userprofile%\desktop\" 出错后 ,我就直接把路径指定,但是还是出错 ,!
学以致用!不耻下问!

TOP

返回列表