中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-03 00:59
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 根据文件夹里的文件建对应的文件夹 查看 1,184 回复 9
楼 主 根据文件夹里的文件建对应的文件夹 发表于 2006-12-19 16:48 ·  中国 广东 广州 花都区 电信
初级用户
★★
积分 197
发帖 77
注册 2006-09-19 14:02
19年会员
UID 63074
性别 男
状态 离线
我的电影文件夹里有和多部电影文件,能不能根据电影文件名新建一个相对应的文件夹,可能的话把电影文件复制到相对应的文件夹里???
2 发表于 2006-12-19 20:22 ·  中国 辽宁 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
19年会员
UID 73417
性别 男
状态 离线
:将文件保存到以文件名命名的文件夹中。
@echo off
for %%a in (*.*) do mkdir "%%~na"
for %%a in (*.*) do COPY %%a "%%~na" ::如果把COPY改成MOVE就会把文件移动
3 在发一个用VBS写的。 发表于 2006-12-19 20:56 ·  中国 辽宁 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
19年会员
UID 73417
性别 男
状态 离线
'目的:把当前文件夹下的所有文件保存到以文件名命名的文件夹里。


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(replace(file.name,"." & fso.GetExtensionName(file),"")) then
fso.movefile file, replace(file.name,"." & fso.GetExtensionName(file),"") & "\"
else
fso.createfolder(replace(file.name,"." & fso.GetExtensionName(file),""))
fso.movefile file, replace(file.name,"." & fso.GetExtensionName(file),"") & "\"
end if
else
end if
next
msgbox "已经将所有文件保存到以文件名命名的文件夹中。",48+4096,"操作完成"
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
ccwan +5 2006-12-20 21:05
4 发表于 2006-12-19 21:17 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
兄的vbs做得不错,但2楼的批处理还有问题,不能成功。
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
5 发表于 2006-12-19 22:07 ·  中国 辽宁 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
19年会员
UID 73417
性别 男
状态 离线
还请CCWAN兄指点 :)
6 发表于 2006-12-19 22:09 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
你客气了,我是认为可以以namejm版主的批处理代码为原型,修改一下就行了。
等我过了冷却期再给兄加分吧。^_^
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
7 发表于 2006-12-20 07:03 ·  中国 广东 广州 花都区新华镇 电信
初级用户
★★
积分 197
发帖 77
注册 2006-09-19 14:02
19年会员
UID 63074
性别 男
状态 离线
第一个问题能不能解决??根据电影文件名新建和电影文件名一样的文件夹??
8 发表于 2006-12-20 07:06 ·  中国 广东 广州 花都区新华镇 电信
初级用户
★★
积分 197
发帖 77
注册 2006-09-19 14:02
19年会员
UID 63074
性别 男
状态 离线
还有问问 "%%~na" 是什么意思啊
9 发表于 2007-01-04 13:59 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
::每个文件生成一个同名文件夹,然后把各个文件拷贝到同名文件夹中
for %%i in (*.rmvb) do md "%%~ni" && copy %%i "%%~ni"
exit
10 发表于 2007-01-08 06:50 ·  中国 黑龙江 哈尔滨 联通
新手上路
积分 19
发帖 10
注册 2006-04-29 13:39
20年会员
UID 54663
性别 男
状态 离线
@echo off
set /p um=生成一个文件夹然后拷到夹中,‘确定按回车’:
::如果把COPY改成MOVE就会把文件移动
::每个文件生成一个同名文件夹,然后把各个文件拷贝到同名文件夹中
for %%i in (*.*) do (md "%%~ni"
for %%j in (%%i) do copy %%i "%%~ni"
)
可惜文件名中含空格我不会处理
论坛跳转: