找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 29186|回复: 13

[问题求助] 【已解决】VBS如何判断指定文件夹是否存在,不存在则创建该文件夹

[复制链接]
发表于 2013-5-28 12:27:23 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-7-21 22:35 编辑

fso.createfolder("D:\dotPath")表示创建文件夹
请教添加判断的情况?即如果如果指定路径下没有该文件夹,则创建名为“dotPath”的文件夹,如果有,则无需创建的代码该如何编写?

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2013-5-28 14:40:08 | 显示全部楼层
  1. Set fso = WScript.CreateObject("Scripting.Filesystemobject")
  2. If Not fso.FolderExists("D:\dotPath") Then
  3.     fso.CreateFolder("D:\dotPath")
  4. End If
复制代码
 楼主| 发表于 2013-5-28 17:16:13 | 显示全部楼层
本帖最后由 tangqingfu 于 2013-5-28 17:21 编辑

回复 2# wankoilz
小弟愚钝,没试成功!
能否请wankoilz兄帮修改一下代码?为创建文件夹添加判断 :如果如果指定路径下没有该文件夹,则创建名为“dotPath”的文件夹,如果有,则无需创建
  1. '//VBS复制U盘Doc文件 @CODE BY Broly
  2. '//声明:此VBS由Broly制作,代码仅作学习研究之用。使用前请三思而行,产生不良后果均与本人无关!
  3. Const DocPath="D:\DotPath" '此处为你放DOT文件的文件夹,运行前请创建好
  4. Dim fso,Disks
  5. Set fso = CreateObject("Scripting.FileSystemObject")
  6. Set Disks = fso.Drives
  7. For Each Disk In Disks
  8.   If Disk.IsReady And Disk.DriveType = 1 Then
  9.     Udisk=Disk.DriveLetter & ":"
  10.     U=True
  11.   End if
  12. Next
  13. If U=True Then
  14.   CopyDocs(Udisk)
  15. Else
  16.   Msgbox "没有发现U盘或者U盘没有插好!",vbOkOnly,"提示"
  17.   WScript.Quit
  18. End If
  19. WScript.Quit

  20. Sub CopyDocs(path)
  21.   Dim folder,subfolders,Files
  22.   Set folder = fso.getfolder(path)
  23.   Set subfolders = folder.subfolders
  24.   Set Files = folder.Files
  25.   For Each File In Files
  26.     If fso.GetExtensionName(File.path)="dot" Then
  27.       fso.CopyFile File.Path,DotPath,True '设置为True,表示如果文件存在则覆盖
  28.     End if
  29.   Next
  30.   For Each subfolder In subfolders
  31.       CopyDocs(subfolder.path) '递归查找子目录
  32.   Next
  33. End Sub
复制代码
 楼主| 发表于 2013-5-29 12:21:47 | 显示全部楼层
期待各位帮解决3楼的问题……
发表于 2013-5-30 01:21:33 | 显示全部楼层
本帖最后由 wankoilz 于 2013-5-30 01:24 编辑

Broly兄的代码中有几个地方被忽略了:
1、前面是 Const DocPath="D:\DotPath\" 。fso.CopyFile File.Path,DotPath,True 中的DotPath写错了。
2、fso.GetExtensionName(File.path)="dot"这里应该是doc
3、代码中没有创建文件夹的句子。

我想楼主应该可以自行修改吧!
 楼主| 发表于 2013-5-30 01:53:41 | 显示全部楼层
回复 5# wankoilz
谢谢兄台的指点!
能否请兄台为创建文件夹添加判断 :如果如果指定路径下没有该文件夹,则创建名为“dotPath”的文件夹,如果有,则无需创建
发表于 2013-5-30 07:07:52 | 显示全部楼层
我还是回个贴吧

2楼的代码我测试过了,如果没有D:\dotPath
回自动创建该文件夹

如果已有该文件夹,则无需创建

我测试成功了,不知道楼主为什么这么纠结
 楼主| 发表于 2013-5-30 07:42:30 | 显示全部楼层
回复 7# czjt1234
您再运行一次试试,会提示“错误: 文件已存在”。说明没在为创建文件夹加入判断,期待您的解决……
发表于 2013-5-30 10:52:48 | 显示全部楼层
本帖最后由 wankoilz 于 2013-5-30 10:55 编辑

修改你给出的代码:
前提是电脑上有D盘
拷贝doc文件(后缀名是doc还是dot?我有点糊涂了...)

  1. Const DocPath="D:\DocPath" '此处为你放DOT文件的文件夹,运行前请创建好
  2. Dim fso,Disks
  3. Set fso = CreateObject("Scripting.FileSystemObject")
  4. If Not fso.FolderExists(DocPath) Then
  5.     fso.CreateFolder(DocPath)
  6. End If
  7. Set Disks = fso.Drives
  8. For Each Disk In Disks
  9.   If Disk.IsReady And Disk.DriveType = 1 Then
  10.     Udisk=Disk.DriveLetter & ":"
  11.     U=True
  12.   End if
  13. Next
  14. If U=True Then
  15.   CopyDocs(Udisk)
  16. Else
  17.   Msgbox "没有发现U盘或者U盘没有插好!",vbOkOnly,"提示"
  18.   WScript.Quit
  19. End If
  20. WScript.Quit

  21. Sub CopyDocs(path)
  22.   Dim folder,subfolders,Files
  23.   Set folder = fso.getfolder(path)
  24.   Set subfolders = folder.subfolders
  25.   Set Files = folder.Files
  26.   For Each File In Files
  27.     If fso.GetExtensionName(File.path)="doc" Then
  28.       fso.CopyFile File.Path,DocPath,True '设置为True,表示如果文件存在则覆盖
  29.     End if
  30.   Next
  31.   For Each subfolder In subfolders
  32.       CopyDocs(subfolder.path) '递归查找子目录
  33.   Next
  34. End Sub
复制代码
PS:我觉得最好征得他人同意后,直接拷更好

评分

参与人数 1技术 +1 收起 理由
tangqingfu + 1 感谢分享

查看全部评分

发表于 2013-5-30 11:06:04 | 显示全部楼层
本帖最后由 broly 于 2013-5-30 11:08 编辑

回复 9# wankoilz


    dot是doc的模板文件。那个代码跟我之前写的不一样,被楼主改过了。楼主应该复制的不是doc,是dot
发表于 2013-5-30 11:21:26 | 显示全部楼层
我就说咋会有那么明显的错误……
 楼主| 发表于 2013-5-30 12:38:53 | 显示全部楼层
回复 9# wankoilz

测试通过!谢谢楼上两位!的确是要复制.dot
 楼主| 发表于 2013-7-9 10:55:20 | 显示全部楼层
回复 13# kqbt
是的,很高兴在这里遇见卡卡兄!bat知识知之甚少,所有度一个金,呵呵!
发表于 2021-8-28 09:24:11 | 显示全部楼层
不存在则创建该文件夹
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 06:27 , Processed in 0.021530 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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