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

[问题求助] [已解决]VBS如何判断是否打开了某文件夹并关闭之?

本帖最后由 q115643492 于 2011-7-12 10:13 编辑

有一需求,判断是否打开了D盘中的文件夹,比如D:\或D:\a,地址栏为显示全路径。有可能打开了多个满足条件的文件夹。如果打开了,就关闭这些文件夹(不要使用结束explorer)。没有就跳转到下面的操作。有点急用。请好心人帮帮!
思路:
1.获取所有打开的窗体名
2.判断窗体名是否包含D:\字符
3.关闭符合条件的窗体
就是不会写这些代码,还请指点!
1

评分人数

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

为什么不要把exporer.exe kill掉啊??

TOP

1# q115643492 这么复杂,看看判断进程标题能否得到了咯
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP


'Author: Demon
'Website: http://demon.tw
'Date: 2011/7/11
Option Explicit
Dim shell, window, path
Set shell = CreateObject("Shell.Application")
For Each window In shell.Windows
    If window = "Windows Explorer" Then
        path =  Mid(window.LocationURL, 9)
        Select Case path
            Case "D:/", "D:/a"
                window.Quit
        End Select
    End If
Next

TOP

4# Demon

好象没有效果!

TOP

4# Demon

好象没有效果!
q115643492 发表于 2011-7-11 12:56

上面的代码是在Windows 7中测试的,刚刚在Windows 2003中测试了一下,发现和Windows 7不太一样。

Windows 7下窗口可以分成Windows Internet Explorer、Windows Explorer两种,前者是IE窗口,后者是Explorer窗口,但是在Windows 2003中没有作区分,只有Windows Internet Explorer一种窗口,所以上面代码的If条件不成立。

既然这样,就不加If判断了


'Author: Demon
'Website: http://demon.tw
'Date: 2011/7/11
Option Explicit
Dim shell, window, path
Set shell = CreateObject("Shell.Application")
For Each window In shell.Windows
    path =  Mid(window.LocationURL, 9)
    Select Case path
         Case "D:/", "D:/a"
            window.Quit
    End Select
Next
1

评分人数

    • broly: 乐于助人技术 + 1

TOP

6# Demon
恩,这样就可以用了,但是只能关闭d:\和d:\a这2个文件夹。
我的意思是需要判断是否打开了D盘中的文件夹,比如D:\或D:\a,只是举例为这2个文件夹,其实文件夹名可能是未知的,还有可能不只这两个,我的想法是:
1.获取所有打开的窗体名
2.判断窗体名是否包含D:\字符
3.关闭符合条件的窗体
看能不能用代码实现

TOP

6# Demon
恩,这样就可以用了,但是只能关闭d:\和d:\a这2个文件夹。
我的意思是需要判断是否打开了D盘中的文件夹,比如D:\或D:\a,只是举例为这2个文件夹,其实文件夹名可能是未知的,还有可能不只这两个,我的想 ...
q115643492 发表于 2011-7-11 13:47

我很好奇你的VBS到底是什么水平,我的回答到此为止。

TOP

就是不懂才来问滴撒,不要欺负象我这种菜鸟新手。
不过还是谢谢你的几次回答!

TOP

本帖最后由 Demon 于 2011-7-11 19:20 编辑
就是不懂才来问滴撒,不要欺负象我这种菜鸟新手。
不过还是谢谢你的几次回答!
q115643492 发表于 2011-7-11 16:06

都到这份上了还不会自己改,我也没什么好说的。正如powerbat所说,如果你什么都不懂,请在提问时注明。

TOP

本帖最后由 broly 于 2011-7-11 21:52 编辑
上面的代码是在Windows 7中测试的,刚刚在Windows 2003中测试了一下,发现和Windows 7不太一样。

Windows 7下窗口可以分成Windows Internet Explorer、Windows Explorer两种,前者是IE窗口,后者是Explorer窗口 ...
Demon 发表于 2011-7-11 13:34



  1. Select Case path
  2. Case "D:/", "D:/a", "文件夹1", "文件夹2", "以此类推"
  3.   window.Quit
  4. End Select
复制代码
---学无止境---

TOP

4# Demon

Demon,下次把代码用[CODE] 括起来吧,方便别人复制代码
---学无止境---

TOP

呵呵。谢谢大家,不好意思,费心了!

TOP

本帖最后由 zm900612 于 2011-7-12 11:15 编辑

批处理的话可以:
  1. move 文件夹 %cd% %cd%>nul||echo %cd%正被使用
复制代码
不知在vbs中如何套用

哦,我看错题意了...

TOP

Select Case path
Case "D:/", "D:/a", "文件夹1", "文件夹2", "以此类推"
  window.Quit
End Select
broly 发表于 2011-7-11 21:50

用[code]括起来如何修改颜色?

TOP

返回列表