标题: [文件操作] [已解决]xp系统下,如何用bat创建文件夹的快捷方式?注意:是文件夹 [打印本页]
作者: ygqiang 时间: 2011-10-5 17:52 标题: [已解决]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盘里的文件,用鼠标点 右键—发送到—桌面,文件就可以直接复制到桌面了。
作者: ygqiang 时间: 2011-10-5 17:54
本帖最后由 ygqiang 于 2011-10-5 20:50 编辑
- ; 创建文件的快捷方式
- set path=C:\WINDOWS\system32\xxx.exe
- rem 要创建快捷方式的文件
- set result="%USERPROFILE%\桌面\xxx.url"
- rem 要创建快捷方式的地方
- echo [InternetShortcut] >> %result%
- echo url="%path%" >> %result%
- rem url一定要写
- echo IconIndex=0 >> %result%
- echo IconFile=%path% >> %result%
复制代码
这个bat命令,是创建文件的快捷方式的,但不能用来创建文件夹的快捷方式。
作者: 920168 时间: 2011-10-5 23:10
本帖最后由 920168 于 2011-10-5 23:21 编辑
- Sub bat
- echo off & cls
- echo create_shortcut
- start wscript -e:vbs "%~f0"
- Exit Sub
- End Sub
-
- Set WshShell = WScript.CreateObject("WScript.Shell")
- Rem 在SendTo目录创建一个“电影”快捷方式
- set oShellLink = WshShell.CreateShortcut("C:\Documents and Settings\aaa\SendTo" & "\电影.lnk") : '注意修改路径和名称,主要是用户名
- oShellLink.TargetPath = "D:\" : '目标
- oShellLink.WindowStyle = 3 :'参数1默认窗口激活,参数3最大化激活,参数7最小化
- oShellLink.Hotkey = "Ctrl+Alt+r" : '快捷键
- oShellLink.IconLocation = "D:\电影, 0" : '图标
- oShellLink.Description = "快捷方式" : '备注
- oShellLink.WorkingDirectory = "D:\" : '起始位置
- oShellLink.Save : '创建保存快捷方式
复制代码
楼上的可以生成,不过看你要放到SendTo 目录就知道想做什么了
*.url肯定是不行的!呵呵
自己修改下,有备注清楚了,不难吧?
作者: ygqiang 时间: 2011-10-6 04:45
本帖最后由 ygqiang 于 2011-10-6 09:33 编辑
多谢楼上。- Sub bat
- echo off & cls
- echo create_shortcut
- start wscript -e:vbs "%~f0"
- Exit Sub
- End Sub
-
- Set WshShell = WScript.CreateObject("WScript.Shell")
- Rem 在SendTo目录创建一个“桌面”快捷方式
- set oShellLink = WshShell.CreateShortcut("C:\Documents and Settings\Administrator\SendTo" & "\桌面.lnk") : '注意修改路径和名称,主要是用户名
- oShellLink.TargetPath = "C:\Documents and Settings\Administrator\桌面" : '目标
- oShellLink.WindowStyle = 3 :'参数1默认窗口激活,参数3最大化激活,参数7最小化
- oShellLink.Hotkey = "Ctrl+Alt+r" : '快捷键
- oShellLink.IconLocation = "C:\Documents and Settings\Administrator\桌面, 0" : '图标
- oShellLink.Description = "快捷方式" : '备注
- oShellLink.WorkingDirectory = "C:\Documents and Settings\Administrator\桌面" : '起始位置
- oShellLink.Save : '创建保存快捷方式
复制代码
以上代码运行成功。
现在的问题是:
1、因为需要在不同的机器上运行,xp系统当前登录用户管理员,并不一定是Administrator,有的是AAA,也有的是test,xxadmin等等。
这种情况,如何修改vbs代码呢?
2、有没有bat批处理代码,可以实现这种要求呢?
作者: ygqiang 时间: 2011-10-6 09:39
“可以在bat里面echo一个临时的vbs 批处理本来功能就很弱 之所以说它强大 就是因为它能灵活调动外部的程序命令等”
看来上面第2个要求,可以实现啊。
作者: ygqiang 时间: 2011-10-6 11:21
- Sub bat
- echo off & cls
- echo create_shortcut
- start wscript -e:vbs "%~f0"
- Exit Sub
- End Sub
-
- Set WshShell = WScript.CreateObject("WScript.Shell")
- Rem 在SendTo目录创建一个“桌面”快捷方式
- strSendTo = WshShell.SpecialFolders("SendTo")
- strDesktop = WshShell.SpecialFolders("Desktop")
- set oShellLink = WshShell.CreateShortcut(strSendTo+"\\桌面.lnk") : '注意修改路径和名称,主要是用户名
- oShellLink.TargetPath = strDesktop : '目标
- oShellLink.WindowStyle = 3 :'参数1默认窗口激活,参数3最大化激活,参数7最小化
- oShellLink.Hotkey = "Ctrl+Alt+R" : '快捷键
- oShellLink.IconLocation = strSendTo+"\桌面, 0" : '图标
- oShellLink.Description = "快捷方式" : '备注
- oShellLink.WorkingDirectory = strSendTo+"\桌面" : '起始位置
- oShellLink.Save : '创建保存快捷方式
复制代码
这个代码,可以在C:\Documents and Settings\xxx\SendTo建立一个桌面的快捷方式。
但有个问题:快捷方式的图标,不是4楼的那种。
这个,如何修改呢?
作者: ygqiang 时间: 2011-10-6 11:22
还有,如果在bat代码中生成并调用临时vbs代码呢?
作者: zaixinxiangnian 时间: 2011-10-6 15:17
回复 4# ygqiang
你这是VBS写的吧》?
VBS比BAT强大吗?不知道BAT如何实现
作者: 920168 时间: 2011-10-6 15:35
回复 8# zaixinxiangnian
如果一定要用bat,需要到微软下载个工具!
作者: zaixinxiangnian 时间: 2011-10-6 16:35
回复 9# 920168
意思是上面是用VBS写的喽,看起来还是VBS操作的泛围广一些
作者: awk 时间: 2011-10-6 16:37
回复 4# ygqiang
test.vbs- Set objShell = WScript.CreateObject("WScript.Shell")
- strSend = objShell.SpecialFolders("SendTo")
- strDesk = objShell.SpecialFolders("Desktop")
- set objLink = objShell.CreateShortcut(strSend & "\桌面.lnk")
- objLink.TargetPath = strDesk
- objLink.WindowStyle = 3
- objLink.WorkingDirectory = strDesk
- objLink.Save
复制代码
作者: awk 时间: 2011-10-6 16:41
回复 7# ygqiang
test.bat- @echo off
- more +5 "%~f0" >"%temp%\mysendto.vbs"
- start "" "%temp%\mysendto.vbs"
- goto :eof
-
- Set objShell = WScript.CreateObject("WScript.Shell")
- strSend = objShell.SpecialFolders("SendTo")
- strDesk = objShell.SpecialFolders("Desktop")
- set objLink = objShell.CreateShortcut(strSend & "\桌面.lnk")
- objLink.TargetPath = strDesk
- objLink.WindowStyle = 3
- objLink.WorkingDirectory = strDesk
- objLink.Save
复制代码
作者: ygqiang 时间: 2011-10-6 18:31
回复 ygqiang
test.bat
awk 发表于 2011-10-6 16:41
多谢。
这个bat可以满足要求了啊。
我想将这个bat批处理代码,放到另一个bat代码里面,这个test.bat的内容,不能直接加入到别的bat里面吧?
因为我看到了 more +5 "%~f0" >"%temp%\mysendto.vbs"
作者: awk 时间: 2011-10-6 19:30
回复 13# ygqiang
是的,你可以自己改改。
搞不定的话,我可以继续帮你。
作者: ygqiang 时间: 2011-10-6 20:00
- ...其他bat代码
- chkntfs /x c: d: e: f: g: h: i:
-
-
- cls
-
- net user Guest /active:yes
-
-
-
- cls
-
- ; 右键添加发送到桌面
- (echo Set objShell = WScript.CreateObject^("WScript.Shell"^)
- echo strSend = objShell.SpecialFolders^("SendTo"^)
- echo strDesk = objShell.SpecialFolders^("Desktop"^)
- echo set objLink = objShell.CreateShortcut^(strSend ^& "\桌面.lnk"^)
- echo objLink.TargetPath = strDesk
- echo objLink.WindowStyle = 3
- echo objLink.WorkingDirectory = strDesk
- echo objLink.Save
- )>"%temp%\mysendto.vbs"
- start "" "%temp%\mysendto.vbs"
-
-
-
- cls
-
-
- del /f /s /q %systemdrive%\windows\media\*.wav >nul 2>nul
- cls
- del /f /s /q %systemdrive%\windows\media\*.mid >nul 2>nul
-
- ...其他bat代码
复制代码
问题解决.
作者: ygqiang 时间: 2011-10-6 20:06
或者这个代码,也可以。- ...其他bat代码
- chkntfs /x c: d: e: f: g: h: i:
-
-
- cls
-
- net user Guest /active:yes
-
-
-
- cls
-
- ; 右键添加发送到桌面
- for /f "delims=:" %%a in ('findstr /n /b "::code" %0') do (more +%%a %0>"%temp%\mysendto.vbs")
- start "" "%temp%\mysendto.vbs"
-
-
-
- cls
-
-
- del /f /s /q %systemdrive%\windows\media\*.wav >nul 2>nul
- cls
- del /f /s /q %systemdrive%\windows\media\*.mid >nul 2>nul
-
- ...其他bat代码
-
-
- exit
-
-
-
-
- ::code
- Set objShell = WScript.CreateObject("WScript.Shell")
- strSend = objShell.SpecialFolders("SendTo")
- strDesk = objShell.SpecialFolders("Desktop")
- set objLink = objShell.CreateShortcut(strSend & "\桌面.lnk")
- objLink.TargetPath = strDesk
- objLink.WindowStyle = 3
- objLink.WorkingDirectory = strDesk
- objLink.Save
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |