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

[文件操作] [已解决]xp系统下,如何用bat创建文件夹的快捷方式?注意:是文件夹

本帖最后由 ygqiang 于 2011-10-6 20:00 编辑

xp系统下,
我想创建当前登陆用户xxx(已经具备管理员权限)的桌面快捷方式,也就是:C:\Documents and Settings\xxx\桌面,这个目录

然后,将这个目录的快捷方式,放到C:\Documents and Settings\xxx\SendTo 目录下。

如何通过bat批处理或者reg注册表文件实现?


C:\Documents and Settings\xxx\SendTo

我就是想在这个位置,建立一个桌面的快捷方式。
这样,我u盘里的文件,用鼠标点 右键—发送到—桌面,文件就可以直接复制到桌面了。
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 ygqiang 于 2011-10-5 20:50 编辑
  1. ; 创建文件的快捷方式
  2. set path=C:\WINDOWS\system32\xxx.exe
  3. rem 要创建快捷方式的文件
  4. set result="%USERPROFILE%\桌面\xxx.url"
  5. rem 要创建快捷方式的地方
  6. echo [InternetShortcut] >> %result%
  7. echo url="%path%" >> %result%
  8. rem url一定要写
  9. echo IconIndex=0 >> %result%
  10. echo IconFile=%path% >> %result%
复制代码
这个bat命令,是创建文件的快捷方式的,但不能用来创建文件夹的快捷方式。

TOP

本帖最后由 920168 于 2011-10-5 23:21 编辑
  1. Sub bat
  2. echo off & cls
  3. echo create_shortcut
  4. start wscript -e:vbs "%~f0"
  5. Exit Sub
  6. End Sub
  7. Set WshShell = WScript.CreateObject("WScript.Shell")
  8. Rem 在SendTo目录创建一个“电影”快捷方式
  9. set oShellLink = WshShell.CreateShortcut("C:\Documents and Settings\aaa\SendTo" & "\电影.lnk")  : '注意修改路径和名称,主要是用户名
  10. oShellLink.TargetPath = "D:\" : '目标
  11. oShellLink.WindowStyle = 3 :'参数1默认窗口激活,参数3最大化激活,参数7最小化
  12. oShellLink.Hotkey = "Ctrl+Alt+r" : '快捷键
  13. oShellLink.IconLocation = "D:\电影, 0" : '图标
  14. oShellLink.Description = "快捷方式" : '备注
  15. oShellLink.WorkingDirectory = "D:\" : '起始位置
  16. oShellLink.Save : '创建保存快捷方式
复制代码
楼上的可以生成,不过看你要放到SendTo 目录就知道想做什么了
*.url肯定是不行的!呵呵
自己修改下,有备注清楚了,不难吧?
1

评分人数

http://www.diecasting86.com

TOP

本帖最后由 ygqiang 于 2011-10-6 09:33 编辑

多谢楼上。
  1. Sub bat
  2. echo off & cls
  3. echo create_shortcut
  4. start wscript -e:vbs "%~f0"
  5. Exit Sub
  6. End Sub
  7. Set WshShell = WScript.CreateObject("WScript.Shell")
  8. Rem 在SendTo目录创建一个“桌面”快捷方式
  9. set oShellLink = WshShell.CreateShortcut("C:\Documents and Settings\Administrator\SendTo" & "\桌面.lnk")  : '注意修改路径和名称,主要是用户名
  10. oShellLink.TargetPath = "C:\Documents and Settings\Administrator\桌面" : '目标
  11. oShellLink.WindowStyle = 3 :'参数1默认窗口激活,参数3最大化激活,参数7最小化
  12. oShellLink.Hotkey = "Ctrl+Alt+r" : '快捷键
  13. oShellLink.IconLocation = "C:\Documents and Settings\Administrator\桌面, 0" : '图标
  14. oShellLink.Description = "快捷方式" : '备注
  15. oShellLink.WorkingDirectory = "C:\Documents and Settings\Administrator\桌面" : '起始位置
  16. oShellLink.Save : '创建保存快捷方式
复制代码
以上代码运行成功。
现在的问题是:
1、因为需要在不同的机器上运行,xp系统当前登录用户管理员,并不一定是Administrator,有的是AAA,也有的是test,xxadmin等等。
这种情况,如何修改vbs代码呢?
2、有没有bat批处理代码,可以实现这种要求呢?

TOP

“可以在bat里面echo一个临时的vbs  批处理本来功能就很弱 之所以说它强大 就是因为它能灵活调动外部的程序命令等”

看来上面第2个要求,可以实现啊。

TOP

  1. Sub bat
  2. echo off & cls
  3. echo create_shortcut
  4. start wscript -e:vbs "%~f0"
  5. Exit Sub
  6. End Sub
  7. Set WshShell = WScript.CreateObject("WScript.Shell")
  8. Rem 在SendTo目录创建一个“桌面”快捷方式
  9. strSendTo = WshShell.SpecialFolders("SendTo")
  10. strDesktop = WshShell.SpecialFolders("Desktop")
  11. set oShellLink = WshShell.CreateShortcut(strSendTo+"\\桌面.lnk")  : '注意修改路径和名称,主要是用户名
  12. oShellLink.TargetPath = strDesktop : '目标
  13. oShellLink.WindowStyle = 3 :'参数1默认窗口激活,参数3最大化激活,参数7最小化
  14. oShellLink.Hotkey = "Ctrl+Alt+R" : '快捷键
  15. oShellLink.IconLocation = strSendTo+"\桌面, 0" : '图标
  16. oShellLink.Description = "快捷方式" : '备注
  17. oShellLink.WorkingDirectory = strSendTo+"\桌面" : '起始位置
  18. oShellLink.Save : '创建保存快捷方式
复制代码
这个代码,可以在C:\Documents and Settings\xxx\SendTo建立一个桌面的快捷方式。

但有个问题:快捷方式的图标,不是4楼的那种。

这个,如何修改呢?

TOP

还有,如果在bat代码中生成并调用临时vbs代码呢?

TOP

回复 4# ygqiang


    你这是VBS写的吧》?
VBS比BAT强大吗?不知道BAT如何实现

TOP

回复 8# zaixinxiangnian


    如果一定要用bat,需要到微软下载个工具!
http://www.diecasting86.com

TOP

回复 9# 920168


    意思是上面是用VBS写的喽,看起来还是VBS操作的泛围广一些

TOP

回复 4# ygqiang


test.vbs
  1. Set objShell = WScript.CreateObject("WScript.Shell")
  2. strSend = objShell.SpecialFolders("SendTo")
  3. strDesk = objShell.SpecialFolders("Desktop")
  4. set objLink = objShell.CreateShortcut(strSend & "\桌面.lnk")
  5. objLink.TargetPath = strDesk
  6. objLink.WindowStyle = 3
  7. objLink.WorkingDirectory = strDesk
  8. objLink.Save
复制代码

TOP

回复 7# ygqiang


test.bat
  1. @echo off
  2. more +5 "%~f0" >"%temp%\mysendto.vbs"
  3. start "" "%temp%\mysendto.vbs"
  4. goto :eof
  5. Set objShell = WScript.CreateObject("WScript.Shell")
  6. strSend = objShell.SpecialFolders("SendTo")
  7. strDesk = objShell.SpecialFolders("Desktop")
  8. set objLink = objShell.CreateShortcut(strSend & "\桌面.lnk")
  9. objLink.TargetPath = strDesk
  10. objLink.WindowStyle = 3
  11. objLink.WorkingDirectory = strDesk
  12. objLink.Save
复制代码
1

评分人数

TOP

回复  ygqiang


test.bat
awk 发表于 2011-10-6 16:41



多谢。

这个bat可以满足要求了啊。

我想将这个bat批处理代码,放到另一个bat代码里面,这个test.bat的内容,不能直接加入到别的bat里面吧?

因为我看到了 more +5 "%~f0" >"%temp%\mysendto.vbs"

TOP

回复 13# ygqiang


是的,你可以自己改改。
搞不定的话,我可以继续帮你。

TOP

  1. ...其他bat代码
  2. chkntfs /x c: d: e: f: g: h: i:
  3. cls
  4. net user Guest /active:yes
  5. cls
  6. ; 右键添加发送到桌面
  7. (echo Set objShell = WScript.CreateObject^("WScript.Shell"^)
  8. echo strSend = objShell.SpecialFolders^("SendTo"^)
  9. echo strDesk = objShell.SpecialFolders^("Desktop"^)
  10. echo set objLink = objShell.CreateShortcut^(strSend ^& "\桌面.lnk"^)
  11. echo objLink.TargetPath = strDesk
  12. echo objLink.WindowStyle = 3
  13. echo objLink.WorkingDirectory = strDesk
  14. echo objLink.Save
  15. )>"%temp%\mysendto.vbs"
  16. start "" "%temp%\mysendto.vbs"
  17. cls
  18. del /f /s /q %systemdrive%\windows\media\*.wav >nul 2>nul
  19. cls
  20. del /f /s /q %systemdrive%\windows\media\*.mid >nul 2>nul
  21. ...其他bat代码
复制代码
问题解决.

TOP

返回列表