查找电脑中,所有的bat文件,并复制到当前目录?
这个查找的p,我会写,可是电脑中有很多bat文件,在不同的目录,而且有可能有重名的现象,如何在不改变原名的情况下,复制到当前目录。如果,有同名的情况下,应该如何避免,或有什么好的方法解决呢?
这个查找的p,我会写,可是电脑中有很多bat文件,在不同的目录,而且有可能有重名的现象,如何在不改变原名的情况下,复制到当前目录。如果,有同名的情况下,应该如何避免,或有什么好的方法解决呢?
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
Dim oShell,oFolder,oFile,sFolder,sExtension
sFolder = "d:\d" '目标目录
sExtension = "bat" '扩展名
Set oShell = CreateObject("Shell.Application")
Set oFolder = oShell.NameSpace(sFolder) 'oShell.NameSpace(.)可获得当前目录
For Each oFile In GetObject("winmgmts:").ExecQuery( _
"Select * from CIM_DataFile Where Extension='" & sExtension & "'")
oFolder.CopyHere oFile.Name,8 '自动改名的关键在于8
Next
Set oFolder = Nothing
Set oShell = Nothing
| 评分人 | 分数 | 时间 |
|---|---|---|
| electronixtar | +8 | 2007-02-19 12:09 |
| anqing | +8 | 2007-02-19 12:18 |
oFolder.CopyHere oFile.Name,8 '自动改名的关键在于8
Originally posted by oilio at 2007-2-18 02:55 PM:
这个肯定两行命令以内搞不定啊。判断同名文件,然后……就够麻烦的了。我知道用管理规范命令行可以搞定,但怎么判断重名,怎么做,不会啊。
for /f "tokens=*" %%i in ('for /d %%j in ^(C:\* D:\*^) do dir /b/s/a %%~sj^|findstr /i /c:".bat"') do echo Y|xcopy "%%i" bat文件\%%~ni\%%~zi\for /f "tokens=*" %%i in ('for /d %%j in ^(C:\* D:\*^) do dir /b/s/a %%~sj^|findstr /i /c:".jpg"') do %%~si