无忧启动论坛

标题: 请教一个复制目录的问题 [打印本页]

作者: gdpndw    时间: 2012-12-13 21:00
标题: 请教一个复制目录的问题
如图如何用xcopy 复制开头是三个字母中间是44后面是任意两个数学的目录。类似 JYS4452

我用了xcopy ???44?? /s f:\aa 试来试去都不成功。不知道错在哪里了。

dt.JPG (28.57 KB, 下载次数: 39)

dt.JPG

作者: pznpt    时间: 2012-12-14 00:58
  1. Set FSO = CreateObject("Scripting.FileSystemObject")
  2. Set Ws = CreateObject("Wscript.Shell")
  3. For Each a In FSO.GetFolder(".").SubFolders
  4.    XcopyFolder "^[a-z]{3}44\d{2}$"
  5. Next
  6. MsgBox "复制完成"

  7. Sub XcopyFolder(Pattern)
  8.    Set Re = New RegExp
  9.    Re.Global = True
  10.    Re.IgnoreCase = True
  11.    Re.Pattern = Pattern
  12.    If Re.Execute(a.Name).Count > 0 Then
  13.       Ws.Run "xcopy " & a.Name & "\* f:\aa" & a.Name & "\ /s",vbHide
  14.    End If
  15. End Sub
复制代码


保存为test.vbs,与需要复制的文件夹放在同一位置
作者: gdpndw    时间: 2012-12-14 10:47
标题: 回复 #2 pznpt 的帖子
谢谢解答,请问一下,如果单XCOPY能不能完成这个问题呢?
作者: pznpt    时间: 2012-12-14 12:07
标题: 回复 #3 gdpndw 的帖子
不可能。。。
除非批处理for + xcopy,不过要实现"开头是三个字母"、"结尾是2个数字"比较罗嗦
作者: Batcher    时间: 2012-12-14 23:12
标题: 回复 #4 pznpt 的帖子
用findstr比较简单吧
作者: pznpt    时间: 2012-12-15 00:21
标题: 回复 #5 Batcher 的帖子
昂。。。老大提醒的极是,我脑袋灌浆啦,呵呵。。。
----------------------------分割线--------------------------------
@echo off
for /f "delims=" %%a in ('dir /ad /b^|findstr /i "^[a-z][a-z][a-z]44[0-9][0-9]$"') do (
  xcopy %%a\* f:\aa\%%a\ /s
)
pause
----------------------------分割线--------------------------------




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3