无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 4537|回复: 4
打印 上一主题 下一主题

[已解决] 请懂得 vbs、vbe 写法的朋友指点下相对路径怎么写才对?

[复制链接]
跳转到指定楼层
1#
发表于 2016-6-5 21:28:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 netmjwork 于 2016-6-5 22:53 编辑

目的:希望通过.vbe 代码通过判断相对目录"%WinDir%\121"是否存在来运行相应的文件。
但代码始终无法实现效果,请教大家如何解决这个问题?多谢!

.vbe好像无法识别相对目录"%WinDir%\121"的路径方式,只能输入"c:\windows\121"才可以正确运行。

如果F1为"%WinDir%\121"就无法识别(无论121目录是否存在,结果都是no.txt)
但F1为"c:\windows\121"就运行正确(121目录存在结果是yes,不存在是no)


代码如下:

   F1   = "%WinDir%\121"
FileYes = ".\yes.txt"
FileNo = ".\no.txt"

set Sh = CreateObject("Wscript.Shell")
Set Ws = CreateObject("Scripting.FileSystemObject")

If ws.FolderExists(F1) Then
  Sh.Run FileYes,1
Else
  Sh.Run FileNo,1
End If
2#
发表于 2016-6-5 21:43:25 | 只看该作者
本帖最后由 dos时代菜鸟 于 2016-6-5 22:00 编辑

看 如下  vbs 脚本:
  1. set os=CreateObject("Wscript.shell")
  2. set fs=CreateObject("Scripting.FileSystemObject")

  3. '---以下7条用来显示 系统级别的临时缓存文件夹的位置
  4. sys_temp=os.Environment("system")("temp")  '---将系统级别的临时缓存文件夹名称赋值给 sys_temp 变量,内容可能含有 %%
  5. abc=os.run("cmd.exe /c echo "&sys_temp&" >temp.txt",0,true) '---由于含有 %% 只能被 cmd 识别,所以通过cmd 把其转换为不带 %%的内容传递给文件
  6. set file1=fs.OpenTextfile("temp.txt",1) '---只读方式打开文件 temp.txt
  7. abc=file1.readline '---读取文件一行内容,并将其赋值给变量 abc
  8. file1.close '---关闭文件
  9. msgbox "系统system级别的临时缓存文件夹为:"&abc '显示变量内容
  10. abc=fs.deletefile("temp.txt",true) '删除文件 temp.txt

  11. '以下4条命令用于获取和显示 FileSystemObject 所能获取的3个 所谓特殊文件夹
  12. path0=fs.getspecialfolder(0)
  13. path1=fs.getSpecialFolder(1)
  14. path2=fs.getSpecialFolder(2)
  15. msgbox "Windows 文件夹:"&path0&chr(13)+ _
  16.         "系统System 文件夹:"&path1&chr(13)+ _
  17.         "系统用户临时缓存文件夹:"&path2
复制代码

点评

多谢指点,不过对代码知识了解的很浅,还不太会“组装”,我再看怎么组装成需要的效果,如果不太麻烦的话希望帮忙修改下我上面的代码(也是看很多示例后组装的,其它功能可以,但相对路径就弄不好,批处理里还能用,  详情 回复 发表于 2016-6-5 22:36
回复

使用道具 举报

3#
发表于 2016-6-5 22:07:52 | 只看该作者
Set objShell=CreateObject("WScript.Shell")
strF1=objShell.ExpandEnvironmentStrings("%WinDir%\121")
WSH.echo strF1

点评

非常感谢,您的代码非常精简,很管用!  详情 回复 发表于 2016-6-5 22:41
回复

使用道具 举报

4#
 楼主| 发表于 2016-6-5 22:36:40 | 只看该作者
本帖最后由 netmjwork 于 2016-6-5 22:53 编辑
dos时代菜鸟 发表于 2016-6-5 21:43
看 如下  vbs 脚本:


多谢提供思路,已经解决……
回复

使用道具 举报

5#
 楼主| 发表于 2016-6-5 22:41:54 | 只看该作者
slore 发表于 2016-6-5 22:07
Set objShell=CreateObject("WScript.Shell")
strF1=objShell.ExpandEnvironmentStrings("%WinDir%\121")
...

非常感谢,您的代码非常精简,很管用!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-6-15 17:11

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表