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

回复 15# nevergiveup520

保存为vbs运行,把结果贴出来
  1. Set objws = wscript.CreateObject("Wscript.Shell")
  2. msgbox "桌面:"& objws.SpecialFolders("Desktop")&vbCrLf&"VBS所在路径:"& objws.CurrentDirectory
复制代码

TOP

回复 18# pcl_test
学以致用!不耻下问!

TOP

回复 11# ygqiang
学以致用!不耻下问!

TOP

本帖最后由 pcl_test 于 2016-1-3 22:02 编辑

回复 18# nevergiveup520

居然没有权限,试试以管理员身份运行或者换到其他盘,再或者看看D:\Users\Desktop文件夹,右键,属性>安全,添加当前用户并赋予相应权限

TOP

回复 19# pcl_test

????你是说的是你给我的两行查询桌面路径的的那个?这个不需要管理员运行啊,右键没有这个以管理员权限运行这个选项啊!其他软件右键有的,以上的脚本我都试过以管理员权限运行过的,都没有成功!

下面是我换成其他盘设置的。
学以致用!不耻下问!

TOP

回复 20# nevergiveup520


    不是,说的是你生成快捷方式的批处理

TOP

自己写个递归吧,直接在VBS调用这段就可以了:
  1. Function Shortcut(Short_name,path_and_name) '为在桌面创建一个快捷方式
  2.     strDesktop = WshShell.SpecialFolders("AllUsersDesktop") '在桌面创建一个快捷方式
  3.     set oShellLink = WshShell.CreateShortcut(strDesktop & "\" & Short_name & ".lnk")   '名称
  4.     oShellLink.TargetPath = path_and_name      '目标
  5.     oShellLink.WindowStyle = 1    '窗口样式  1默认窗口激活,参数3最大化激活,参数7最小化
  6.     oShellLink.Hotkey = ""         '快捷键
  7.     oShellLink.IconLocation = path_and_name & ",0"     '第几个图标
  8.     oShellLink.Description = Short_name      '备注
  9.     oShellLink.WorkingDirectory = left(path_and_name,InStrRev(path_and_name,"\")-1)   '起始位置
  10.     oShellLink.Arguments = ""    '参数
  11.     oShellLink.Save     '保存
  12. End Function
复制代码

TOP

回复 21# pcl_test


    若不用管理员权限运行的话 ,窗口一闪而过。我是用管理员权限运行的!
学以致用!不耻下问!

TOP

回复 23# nevergiveup520

保存为vbs运行
  1. Set objws = wscript.CreateObject("Wscript.Shell")
  2. '换到其他盘试试
  3. Set objLink = objws.CreateShortcut("E:\123.lnk")
  4. objLink.Save
复制代码

TOP

回复 24# pcl_test
    运行正常

但是我下面的一段批处理没有在运行的当前目录下创建,而是在C:\Windows\System32的程序创建快捷方式了,请问怎么回事?如图:
  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 "delims=*" %%i in ('dir /a /b/on *.exe') do (
  7. lnk.vbs "D:\Users\Desktop\1\%%~ni.lnk" "%%~fi"
  8. )
  9. del lnk.vbs
复制代码
学以致用!不耻下问!

TOP

回复 22# 9zhmke


   看不大明白,大神能否说的详细点!
学以致用!不耻下问!

TOP

本帖最后由 pcl_test 于 2016-1-4 16:57 编辑

保存为vbs运行,测试对桌面文件夹是否有相应权限
  1. Set objws = wscript.CreateObject("Wscript.Shell")
  2. desktop = objws.SpecialFolders("Desktop")
  3. Set objLink = objws.CreateShortcut(desktop&"\123测试.lnk")
  4. objLink.Save
  5. msgbox "桌面:"& desktop
复制代码

TOP

保存为bat运行,对照检测用
  1. ' 2>nul 3>nul&cls&@echo off
  2. '&for /f "delims=" %%i in ('dir /a-d /b *.exe') do cscript -nologo -e:vbscript "%~f0" "%%~ni" "%%~fi"
  3. '&pause&exit /b
  4. Set objws = wscript.CreateObject("Wscript.Shell")
  5. Desktop = objws.SpecialFolders("Desktop")
  6. '在H盘创建快捷方式
  7. Set objLink1 = objws.CreateShortcut("H:\" & WScript.Arguments(0) & ".lnk")
  8. objLink1.TargetPath = WScript.Arguments(1)
  9. objLink1.Save
  10. '在桌面创建快捷方式
  11. Set objLink2 = objws.CreateShortcut(Desktop & "\" & WScript.Arguments(0) & ".lnk")
  12. objLink2.TargetPath = WScript.Arguments(1)
  13. objLink2.Save
复制代码

TOP

保存为bat运行,对照检测用
pcl_test 发表于 2016-1-4 16:44


版主啊  按照你给的代码,我试过了  你给的两个路径,可以正常生成快捷方式,但是没有在我需要的
学以致用!不耻下问!

TOP

本帖最后由 pcl_test 于 2016-1-4 21:52 编辑

回复 29# nevergiveup520
  1. ' 2>nul 3>nul&cls&@echo off
  2. '&echo;批处理所在路径:%~pd0
  3. '&for /f "delims=" %%i in ('dir /a-d /b *.exe') do cscript -nologo -e:vbscript "%~f0" "%%~ni" "%%~fi"
  4. '&pause&exit /b
  5. Set objws = wscript.CreateObject("Wscript.Shell")
  6. Desktop = objws.SpecialFolders("Desktop")
  7. '在桌面创建快捷方式
  8. lnk = Desktop & "\" & WScript.Arguments(0) & ".lnk"
  9. Set objLink = objws.CreateShortcut(lnk)
  10. objLink.TargetPath = WScript.Arguments(1)
  11. WSH.echo lnk & vbCrLf &"程序所在路径:" &WScript.Arguments(1)
  12. objLink.Save
复制代码

TOP

返回列表