中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 一个按照文件扩展名整理文件的VBS
« [1] [2] »
作者:
标题: 一个按照文件扩展名整理文件的VBS 上一主题 | 下一主题
jmz573515
银牌会员




积分 1212
发帖 464
注册 2006-12-13
状态 离线
『楼 主』:  一个按照文件扩展名整理文件的VBS

on error resume next
Set WshShell = WScript.CreateObject("WScript.Shell")
set fso=createobject("scripting.filesystemobject")
set folder=fso.getfolder(WshShell.CurrentDirectory)
set files=folder.files ' 当前目录的所有文件集合
for each file in files
if fso.folderexists(fso.GetExtensionName(file) & "文件") then
fso.movefile file, fso.GetExtensionName(file) & "文件\"
else
fso.createfolder (fso.GetExtensionName(file) & "文件")
fso.movefile file, fso.GetExtensionName(file) & "文件\"
end if
next
msgbox "已经将所所有文件按类型分类。",48+4096,"操作成功"

[ Last edited by jmz573515 on 2006-12-15 at 08:17 AM ]

   此帖被 +5 点积分      点击查看详情   
评分人:【 redtek 分数: +3  时间:2006-12-15 21:51
评分人:【 zhclvip 分数: +2  时间:2007-2-4 08:13


2006-12-15 03:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 2 楼』:  

不错~




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'>"
2006-12-15 04:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 3 楼』:  


  学习了~


2006-12-15 04:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Primalchaos
初级用户





积分 41
发帖 19
注册 2006-12-15
状态 离线
『第 4 楼』:  

不知bat做出来怎样。大家试试:
for %%i in (*) do (
md %%~xi文件>nul 2>nul
move *%%~xi %%~xi文件)


2006-12-15 05:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 5 楼』:  

  以下代码能实现和顶楼的vbs代码同样的功能。有所区别的是,不会移动自身:
@echo off
title 文件归类整理器

:: 目的:
::
::   对当前目录下的不同文件进行归类操作(不处理子目录)
::
:: 2006-12-16 修改了一处错误

for /f "delims=" %%i in ('dir /a-d /b /oe') do (
    set "nx_name=%%~nxi"
    call :build_dir %%~xi
    set file_type=%%~xi

)
goto :eof

rem ======= 按文件类型创建文件夹 =======
:build_dir
set types=%1
set types=%types:~1%

:: 判断要处理的文件是不是批处理自身
if "%nx_name%"=="%~nx0" (set file_self=yes&set file_type=) else set file_self=

:: 判断文件类型是否发生了变化
if "%file_type%"=="%1" (set same_type=yes) else set same_type=

if not defined file_self if not defined same_type md %types%文件 2>nul
if not defined file_self move /-y "%nx_name%" %types%文件
goto :eof
  能处理子目录的代码请点 这里 查看。

[ Last edited by namejm on 2006-12-16 at 10:57 AM ]

   此帖被 +11 点积分     点击查看详情   
评分人:【 ccwan 分数: +5  时间:2006-12-15 05:47
评分人:【 lxmxn 分数: +3  时间:2006-12-15 07:18
评分人:【 redtek 分数: +3  时间:2006-12-15 21:51




尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-12-15 05:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 6 楼』:  

版主这个好!
它会保留自身,不进入.bat文件夹。



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2006-12-15 05:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 7 楼』:  

欣赏~~



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-12-15 06:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 8 楼』:  


  顶一个先。


2006-12-15 07:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jmz573515
银牌会员




积分 1212
发帖 464
注册 2006-12-13
状态 离线
『第 9 楼』:  经过改进------以下是可以保留自身的VBS。

****以下是可以保留自身的VBS。
on error resume next
Set WshShell = WScript.CreateObject("WScript.Shell")
set fso=createobject("scripting.filesystemobject")
set folder=fso.getfolder(WshShell.CurrentDirectory)
set files=folder.files ' 当前目录的所有文件集合
for each file in files
if file.name<>wscript.scriptname then
if fso.folderexists(fso.GetExtensionName(file) & "文件") then
fso.movefile file, fso.GetExtensionName(file) & "文件\"
else
fso.createfolder (fso.GetExtensionName(file) & "文件")
fso.movefile file, fso.GetExtensionName(file) & "文件\"
end if
else
end if
next
msgbox "已经将所所有文件按类型分类。",48+4096,"操作成功"

   此帖被 +11 点积分     点击查看详情   
评分人:【 redtek 分数: +3  时间:2006-12-15 21:52
评分人:【 ccwan 分数: +5  时间:2006-12-16 06:27
评分人:【 lxmxn 分数: +3  时间:2006-12-16 06:31


2006-12-15 21:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 10 楼』:  

好啊。现在受限,回头给你加分。



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2006-12-15 22:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 11 楼』:  

我说到做到^_^ 灌水~~



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2006-12-16 06:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
voiL
中级用户





积分 384
发帖 189
注册 2005-10-19
状态 离线
『第 12 楼』:  

这个不错,不知兄们能否做个可以根据MP3位速来归类的VBS呢...

2006-12-16 08:45
查看资料  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 13 楼』:  

做记号

2006-12-16 09:40
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
jmz573515
银牌会员




积分 1212
发帖 464
注册 2006-12-13
状态 离线
『第 14 楼』:  我也来凑个热闹

‘按类型整理文件VBS版(包含子目录),整理后原文件还在,详细请看注释。

Const WINDOW_HANDLE = 0
Const OPTIONS = &H10&
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder _
    (WINDOW_HANDLE, "请选择你要整理的文件夹:", OPTIONS, ".")
If objFolder Is Nothing Then
    Wscript.Quit
End If
Set objFolderItem = objFolder.Self
objPath = objFolderItem.Path
search(objpath)
sub search(folder)
set fso=createobject("scripting.filesystemobject")
on error resume next
set folder=fso.getfolder(folder)
set files=folder.files
for each file in files
if file.name<>wscript.scriptname then
if fso.folderexists(fso.GetExtensionName(file) & "文件") then
fso.copyfile file, fso.GetExtensionName(file) & "文件\" '为了安全起见此处我用的复制(copyfile)没有剪切(movefile),如果想移动文件可以自行更改。
else
fso.createfolder (fso.GetExtensionName(file) & "文件")
fso.copyfile file, fso.GetExtensionName(file) & "文件\" '为了安全起见此处我用的复制(copyfile)没有剪切(movefile),如果想移动文件可以自行更改。
end if
else
end if
next
set subfolders=folder.subfolders
for each subfolder in subfolders
search(subfolder)
next
end sub
msgbox "已经将" & "【" & objpath & "】下所有文件按类型分类。",48+4096,"操作成功"

[ Last edited by jmz573515 on 2006-12-16 at 11:13 AM ]

2006-12-17 00:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 15 楼』:  

呵呵,两位原来在比擂啊。
jmz573515兄,提个小意见,窗口停顿时间太短,来不及操作。



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2006-12-17 00:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: