楼 主
请教:如何进入某个特定文件夹下的第二个子文件夹?
发表于 2008-07-27 22:34 · 中国 黑龙江 大庆 联通
新手上路
★
积分 16 发帖 7 注册 2008-07-27 21:26 18年会员 UID 122211 性别 男
状态 离线
在某个特定的文件夹下有几个以日期为名字的子文件夹,例如:2008-01-01,2008-01-02,2008-01-03等(此子文件夹为程序自动创建),要实现以下功能:1、将第二个子文件夹里的所有文件移动到一个固定的文件夹中;2、删除第二个子文件夹。希望通过批处理实现此功能,方便扩展为第四个子文件夹等,机器全部为XP操作系统。需要详细的实现方法和步骤,非常感谢!
第 2 楼
发表于 2008-07-27 22:52 · 中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
@echo off
set SrcFolder=C:\test
set DstFolder=C:\a
set FolderNo=2
set count=0
setlocal enabledelayedexpansion
for /f "delims=/" %%a in ('dir /ad /b "%SrcFolder%"') do (
set /a count+=1
if !count! equ 2 (
move /y "%SrcFolder%\%%a\*.*" "%DstFolder%"
)
)
第 3 楼
谢谢HAT,请再详细指教!
发表于 2008-07-29 07:27 · 中国 黑龙江 大庆 大庆中基石油通信建设有限公司
新手上路
★
积分 16 发帖 7 注册 2008-07-27 21:26 18年会员 UID 122211 性别 男
状态 离线
对不起您的指点,我没有弄明白。请详细注明一下,可以么?
第 4 楼
发表于 2008-07-29 12:48 · 中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
第 5 楼
感谢HAT!
发表于 2008-07-29 18:06 · 中国 黑龙江 大庆 联通
新手上路
★
积分 16 发帖 7 注册 2008-07-27 21:26 18年会员 UID 122211 性别 男
状态 离线
看了下教程,查了下参数,基本明白了,FOR语句还是没能完全理解,但不影响应用了。
“if !count! equ 2”中的数字2是否可以使用“set FolderNo=2”中的变量“FolderNo”,写成“if !count! equ %FolderNo%”是否可行?
另外:如果在本机使用“source$”和“target$”这样的共享文件夹为源和目的文件夹,文件夹的路径变量写成形如:
set SrcFolder=\\计算机名\source$\test
set DstFolder=\\计算机名\target$\a
这样的形式是否可行。如果可行,本机的“计算机名”如何在批处理中定义并可以调用。请指教,谢谢!
[ Last edited by liaowm on 2008-7-29 at 06:11 PM ]
第 6 楼
发表于 2008-07-29 18:09 · 中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
第 7 楼
感谢HAT!
发表于 2008-07-30 21:58 · 中国 黑龙江 大庆 联通
新手上路
★
积分 16 发帖 7 注册 2008-07-27 21:26 18年会员 UID 122211 性别 男
状态 离线
经过测试,批处理完全能够满足我的要求,并运行良好,谢谢HAT,非常感谢!
第 8 楼
再次请教!
发表于 2008-07-31 12:16 · 中国 黑龙江 大庆 大庆中基石油通信建设有限公司
新手上路
★
积分 16 发帖 7 注册 2008-07-27 21:26 18年会员 UID 122211 性别 男
状态 离线
批处理正式应用时发现一个问题,文件移动速度太慢。由于测试时,所用的文件较小,运行时速度比较快,文件很快就移动完成。实际应用时,大的文件移动速度比较慢,感觉比通过网上邻居复制还要慢,应该如何解决。请指教!
我在批处理中,将文件夹进行了以下形式的引用:
set SFolder=\\%computername%\dl$
set TFolder1=\\%computername%\biao$
set TFolder2=\\%computername%\one$
是否与此有关,该如何解决?是否必须将文件夹路径中的"\\%computername%\"写成"c:\test\linshi"这样的形式?文件夹路径中包含中文名有没有影响?谢谢!
第 9 楼
发表于 2008-07-31 13:41 · 中国 江苏 苏州 吴江区 电信
银牌会员
★★★
积分 1,608 发帖 780 注册 2007-10-07 10:19 18年会员 UID 99089 性别 男
状态 离线
第 10 楼
发表于 2008-07-31 13:51 · 中国 黑龙江 大庆 大庆中基石油通信建设有限公司
新手上路
★
积分 16 发帖 7 注册 2008-07-27 21:26 18年会员 UID 122211 性别 男
状态 离线
写成以下这种形式:
set SFolder=\\%computername%\dl$
set TFolder1=\\%computername%\biao$
set TFolder2=\\%computername%\one$
在批处理中,进行文件移动的时候(在同一个磁盘分区),速度比较慢。而实际上,在资源管理器中进行文件移动的操作时,速度是相当快地。
第 11 楼
发表于 2008-07-31 13:56 · 中国 江苏 苏州 吴江区 电信
银牌会员
★★★
积分 1,608 发帖 780 注册 2007-10-07 10:19 18年会员 UID 99089 性别 男
状态 离线
在同一分区下你怎么会用\\的形式呢?
那样当然慢了
直接就是
set SFolder=%computername%\dl$
第 12 楼
发表于 2008-07-31 14:22 · 美国 惠普HP
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
如果拷贝到本机,不要使用\\%computername%
如果拷贝到远程机器,用IP地址代替%computername%
第 13 楼
发表于 2008-07-31 15:40 · 中国 黑龙江 大庆 大庆中基石油通信建设有限公司
新手上路
★
积分 16 发帖 7 注册 2008-07-27 21:26 18年会员 UID 122211 性别 男
状态 离线
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正