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

[系统相关] 批处理能否自动提取优盘上的word文档?

1假设优盘的盘符是G
2优盘一旦插进去自动将里面的所有word文档复制到一个文件夹里面
3没有优盘插进去时什么也不做

谢谢分享,收藏!

TOP

。。。学习一下

TOP

[attach]3318[/attach]有时候会出现这样的情况,程序可以运行

TOP

  1. '//VBS复制U盘Doc文件 @CODE BY Broly
  2. '//声明:此VBS由Broly制作,代码仅作学习研究之用。使用前请三思而行,产生不良后果均与本人无关!
  3. Const DocPath="D:\DocPath\" '此处为你放DOC文件的文件夹,运行前请创建好
  4. Dim fso,Disks
  5. Set fso = CreateObject("Scripting.FileSystemObject")
  6. Do
  7.   n=n+1
  8.   Set Disks = fso.Drives
  9.   For Each Disk In Disks
  10.     If Disk.IsReady And Disk.DriveType = 1 Then
  11.       Udisk=Disk.DriveLetter & ":\"
  12.       U=True
  13.     End if
  14.   Next
  15.   If U=True Then
  16.     CopyDocs(Udisk)
  17.   Else
  18.     If n=1 Then
  19.       Msgbox "没有发现U盘或者U盘没有插好!",vbOkOnly,"提示"
  20.     End if
  21.   End If
  22.   WScript.Sleep 30000  '每30秒循环一次
  23. Loop
  24. Sub CopyDocs(path)
  25.   Dim folder,subfolders,Files
  26.   Set folder = fso.getfolder(path)
  27.   Set subfolders = folder.subfolders
  28.   Set Files = folder.Files
  29.   For Each File In Files
  30.     If fso.GetExtensionName(File.path)="doc" Then
  31.       fso.CopyFile File.Path,DocPath,True '设置为True,表示如果文件存在则覆盖
  32.     End if
  33.   Next
  34.   For Each subfolder In subfolders
  35.       CopyDocs(subfolder.path) '递归查找子目录
  36.   Next
  37. End Sub
复制代码
---学无止境---

TOP

能否在不插优盘时只提醒一次

TOP

可以完全解决你的问题

我改天写帮你写个代码吧
现在因为没有时间。。。。
QQ316891946  请楼主提醒。。。。。

TOP

很简单嘛何必这么复杂。。。。

TOP

回复 13楼 的帖子

怪不得你运行错误
  1. Const DocPath="D:\DocPath\"1'此处为你放DOC文件的文件夹,运行前请创建好
复制代码


“1”是什么来的?
我的意思是把
  1. D:\DocPath\
复制代码
这个改为你要保存的路径
比如你要保存在文件夹 d:\123\ 下面
那么这一句就是
  1. Const DocPath="D:\123\"   '此处为你放DOC文件的文件夹,运行前请创建好
复制代码
---学无止境---

TOP

代码我改成这样
  1. '//VBS复制U盘Doc文件 @CODE BY Broly
  2. '//声明:此VBS由Broly制作,代码仅作学习研究之用。使用前请三思而行,产生不良后果均与本人无关!
  3. Const DocPath="D:\DocPath\"1'此处为你放DOC文件的文件夹,运行前请创建好
  4. Dim fso,Disks
  5. Set fso = CreateObject("Scripting.FileSystemObject")
  6. Do
  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.   End If
  19.   WScript.Sleep 30000  '每30秒循环一次
  20. Loop
  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
复制代码

TOP

第二个代码后缀名是vbs时[attach]3304[/attach]
后缀名bat时没反应

TOP

回复 10楼 的帖子

试过,可以。怎么不行了?
你用哪一个代码?
---学无止境---

TOP

你试过吗,怎么在我的电脑上不行啊

TOP

下面这个是运行一次的代码
  1. '//VBS复制U盘Doc文件 @CODE BY Broly
  2. '//声明:此VBS由Broly制作,代码仅作学习研究之用。使用前请三思而行,产生不良后果均与本人无关!
  3. Const DocPath="D:\DocPath\" '此处为你放DOC文件的文件夹,运行前请创建好
  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)="doc" Then
  27.       fso.CopyFile File.Path,DocPath,True '设置为True,表示如果文件存在则覆盖
  28.     End if
  29.   Next
  30.   For Each subfolder In subfolders
  31.       CopyDocs(subfolder.path) '递归查找子目录
  32.   Next
  33. End Sub
复制代码


下面这个是无限循环的代码(即监控状态)。
  1. '//VBS复制U盘Doc文件 @CODE BY Broly
  2. '//声明:此VBS由Broly制作,代码仅作学习研究之用。使用前请三思而行,产生不良后果均与本人无关!
  3. Const DocPath="D:\DocPath\" '此处为你放DOC文件的文件夹,运行前请创建好
  4. Dim fso,Disks
  5. Set fso = CreateObject("Scripting.FileSystemObject")
  6. Do
  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.   End If
  19.   WScript.Sleep 30000  '每30秒循环一次
  20. Loop
  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
复制代码
---学无止境---

TOP

回复 1楼 的帖子

LZ要求在一种监控状态,一有U盘插入就有反应?用批处理或者VBS,这样是很耗用CPU的。
---学无止境---

TOP

返回列表