|  | 
 
| anqing 高级用户
 
     
 
 
 积分 859
 发帖 413
 注册 2006-8-14
 状态 离线
 | 
| 『楼 主』:
 查找电脑中,所有的bat文件,并复制到当前目录?
 
使用 LLM 解释/回答一下 
 
 
查找电脑中,所有的bat文件,并复制到当前目录?这个查找的p,我会写,可是电脑中有很多bat文件,在不同的目录,而且有可能有重名的现象,如何在不改变原名的情况下,复制到当前目录。如果,有同名的情况下,应该如何避免,或有什么好的方法解决呢?
 
 
 
 
 |  | 
|  2007-2-18 23:45 |  | 
|  | 
 
| jmz573515 银牌会员
 
      
 
 
 积分 1212
 发帖 464
 注册 2006-12-13
 状态 离线
 | 
| 『第 2 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
而且有可能有重名的现象,如何在不改变原名的情况下,复制到当前目录。
 好像不可以...
 
 应该如何避免,只能等高人啦~
 
 
 
 
 |  | 
|  2007-2-19 00:59 |  | 
|  | 
 
| gne3 高级用户
 
     DOS学徒
 
 
 积分 526
 发帖 252
 注册 2007-2-12
 状态 离线
 |  | 
|  2007-2-19 02:32 |  | 
|  | 
 
| oilio 高级用户
 
     前进者
 
 
 积分 641
 发帖 303
 注册 2007-1-10
 状态 离线
 | 
| 『第 4 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
这个肯定两行命令以内搞不定啊。判断同名文件,然后……就够麻烦的了。我知道用管理规范命令行可以搞定,但怎么判断重名,怎么做,不会啊。 
 
 
 
 
 |  
                  |  我相信总有一天,总会遇到一个人可以相濡以沫、相吻以湿!
 |  | 
|  2007-2-19 03:55 |  | 
|  | 
 
| anqing 高级用户
 
     
 
 
 积分 859
 发帖 413
 注册 2006-8-14
 状态 离线
 | 
| 『第 5 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
vbs如果能搞定的话,也可以的是呀,主要是判断同名的文件,不好办,一方面要拷贝,还要加上判断。
 还有一个问题是,如果遍历磁盘文件的话,当前的目录,也会被遍历到,哪结果就是复制重复自身了吧?
 
 
 
 
 |  | 
|  2007-2-19 06:26 |  | 
|  | 
 
| 3742668 荣誉版主
 
        
 
 
 
 积分 2013
 发帖 718
 注册 2006-2-18
 状态 离线
 | 
|   『第 6 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
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
 
 
其实不论用bat还是vbs都并非很复杂,只需要先保存所有需要拷贝的文件名然后分别处理就行了。 
出于效率以及简洁方面的原因,使用了vbs来构建脚本。如果不存在sFolder指定的目录可能出错。 
另:若存在相同文件名,则会在新拷贝的文件名前加上”复件“字样。 
 
 
 
 
 
 |  | 
|  2007-2-19 12:03 |  | 
|  | 
 
| electronixtar 铂金会员
 
        
 
 
 
 积分 7493
 发帖 2672
 注册 2005-9-2
 状态 离线
 | 
| 『第 7 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
oFolder.CopyHere oFile.Name,8        '自动改名的关键在于8 
这个思路好啊,调用explorer自动更名!顶!学习! 
 
 
 
 
 |  
                  |  
 C:\>BLOG http://initiative.yo2.cn/
 C:\>hh.exe ntcmds.chm::/ntcmds.htm
 C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
 |  | 
|  2007-2-19 12:09 |  | 
|  | 
 
| anqing 高级用户
 
     
 
 
 积分 859
 发帖 413
 注册 2006-8-14
 状态 离线
 | 
| 『第 8 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
太好了。谢谢。Shell.Application
 ("winmgmts:").ExecQuery
 不太明白??
 
 
 
 
 |  | 
|  2007-2-19 12:17 |  | 
|  | 
 
| zerocq 中级用户
 
    
 
 
 积分 458
 发帖 196
 注册 2006-10-5
 状态 离线
 |  | 
|  2007-2-19 14:19 |  | 
|  | 
 
| PPdos 高级用户
 
     
 
 
 积分 783
 发帖 268
 注册 2006-12-26
 状态 离线
 | 
| 『第 10 楼』:
 一句话便可
 
使用 LLM 解释/回答一下 
 
 
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\
 
可用时间 大小 等设为文件夹名称来分开相同文件
 
 Last edited by PPdos on 2007-2-19 at 03:35 AM ] 
 
 
 
 
 |  
                  |  菩提本无树,明镜亦非台,本来无一物,何处惹尘埃.
 |  | 
|  2007-2-19 16:02 |  | 
|  | 
 
| PPdos 高级用户
 
     
 
 
 积分 783
 发帖 268
 注册 2006-12-26
 状态 离线
 | 
| 『第 11 楼』:
 温故而知新
 
使用 LLM 解释/回答一下 
 
 
for /f "tokens=*" %%i in ('for /d %%j in ^(C:\* D:\*^) do dir /b/s/a %%~sj^|findstr /i /c:".jpg"') do %%~si
 
 
 
 
 
 |  
                  |  菩提本无树,明镜亦非台,本来无一物,何处惹尘埃.
 |  | 
|  2007-2-19 17:16 |  | 
|  | 
 
| anqing 高级用户
 
     
 
 
 积分 859
 发帖 413
 注册 2006-8-14
 状态 离线
 |  | 
|  2007-2-19 22:46 |  | 
|  | 
 
| anqing 高级用户
 
     
 
 
 积分 859
 发帖 413
 注册 2006-8-14
 状态 离线
 |  | 
|  2007-2-19 22:48 |  |