中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [已结]对于嵌套变量的问题 上一主题 | 下一主题
aihejiating
新手上路





积分 18
发帖 14
注册 2008-10-14
状态 离线
『楼 主』:  [已结]对于嵌套变量的问题

我在http://www.cn-dos.net/forum/viewthread.php?tid=23336看到的一张贴贴,原意是按天空软件站软件的分类建立文件夹
作者pengfei给出了一种解决方案
天空软件站软件的分类.txt
1 网络软件
            主页浏览 浏览辅助 离线浏览 书签工具 拨号计时 邮件检测 邮件处理 主页制作 网页辅助
            网站推广 FTP工具  下载工具 网络共享 网络加速 搜索引擎 远程监控 新闻阅读 IP工具
            服务器区 网络监测 网络辅助 文件共享 Telnet类 邮件群发 信息发布

            1 系统工具
            系统增强 系统设置 系统备份 桌面工具 剪贴工具 开关定时 CPU相关  内存工具 磁盘工具
            数据备份 卸载清除 升级补丁 系统测试 系统其它

            1 应用软件
            压缩解压 文件管理 文件分割 文件更名 时钟日历 键盘鼠标 电子阅读 汉字输入 文字处理
            字体工具 打印工具 虚拟光驱 转换翻译 信息管理 杂类工具 文件修复 光驱工具 文档管理
            计算器类

            1 联络聊天
            聊天工具 OICQ专区 ICQ专区  网络电话 传真工具 电话寻呼 信使工具 MSN专区         

            1 图形图像
            图像制作 动画制作 图像捕捉 图像转换 图片压缩 图像浏览 图标工具 图像管理 3D制作类
            图像其它

            1 多媒体类
            媒体播放 音频处理 视频处理 音频转换 视频转换 桌面制作 媒体管理 光盘刻录 WINAMP区
            媒体制作 媒体其它 网络电视 媒体点播

            1 行业软件
            股票证券 商业贸易 财务管理 彩票工具 行政管理 出版印刷 工程建筑 机械电子 纺织服装
            健康医药 法律法规 餐饮旅游 交通运输 辅助设计 租借管理 农业相关 保险行业 审计评估
            其它行业 客户管理 物流中介

            1 游戏娱乐
            趣味软件 测字算命 游戏工具 模拟器类 棋牌游戏 益智游戏 动作射击 体育竞技 网络游戏
            其它游戏

            1 编程开发
            编程工具 安装制作 补丁制作 网络编程 数据库类 调试工具 编译工具 编程其它 综合控件
            网络控件 媒体控件 DBF控件  系统控件 界面控件 图像控件 时间控件 文件控件 压缩控件
            图表控件 其它控件

            1 安全相关
            病毒防治 系统安全 系统监视 网吧管理 网络安全 加密工具 密码恢复 密码管理 浏览安全

            1 教育教学
            教育管理 文科工具 理科工具 外语学习 学前教育 电脑学习 考试系统 天文地理 电子教室

            1 软件资讯
            软件报道 软件教程 设计学院

            1 精彩动画
            动画类   MTV类    专辑类
@echo off
set root=%cd%
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in (天空软件站软件分类.txt) do (
    set list=%%i
    set new=md !list!
    if "!list:~0,1!"=="1" cd %root% & md !list:~2! & cd !list:~2! & set new=
    !new!
)
我不明白最后一句set new=!new!的作用,我尝试着删除这一句,结果是无法建立子文件夹,我也试过用set new=!md !list!!代替new=!new!,结果是多建立了一个名字为1的文件夹

[ Last edited by HAT on 2008-10-15 at 09:35 ]

2008-10-14 13:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
s11ss
银牌会员





积分 2098
发帖 566
注册 2007-9-11
状态 离线
『第 2 楼』:  

set new=和!new!是两条语句,哥们儿——前面的清空变量new,后面的是建立文件夹

2008-10-14 14:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
aihejiating
新手上路





积分 18
发帖 14
注册 2008-10-14
状态 离线
『第 3 楼』:  

谢谢2楼的兄弟,现在我明白啦!

2008-10-14 19:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
aihejiating
新手上路





积分 18
发帖 14
注册 2008-10-14
状态 离线
『第 4 楼』:  

2楼的兄弟,我还有两个问题不明白,
第一:为什么要清空new的变量?new的值不是在下次的循环中被重新赋值并覆盖原值的吗?
第二:为什么清空了new变量的值以后,最后一句!new!还能建立文件夹?

2008-10-14 20:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
s11ss
银牌会员





积分 2098
发帖 566
注册 2007-9-11
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by aihejiating at 2008-10-14 08:10 PM:
2楼的兄弟,我还有两个问题不明白,
第一:为什么要清空new的变量?new的值不是在下次的循环中被重新赋值并覆盖原值的吗?
第二:为什么清空了new变量的值以后,最后一句!new!还能建立文件夹?

关于   
if "!list:~0,1!"=="1" cd %root% & md !list:~2! & cd !list:~2! & set new=
!new!

见流程图:

[ Last edited by s11ss on 2008-10-14 at 22:49 ]

   此帖被 +4 点积分     点击查看详情   
评分人:【 HAT 分数: +4  时间:2008-10-14 22:51


附件 1: 流程图.PNG (2008-10-14 22:49, 4.31 K)


2008-10-14 22:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 6 楼』:  

建议 s11ss 兄以后使用jgp/gif格式上传附件,可以比bmp更加节约论坛空间。



2008-10-14 22:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
s11ss
银牌会员





积分 2098
发帖 566
注册 2007-9-11
状态 离线
『第 7 楼』:  



  Quote:
Originally posted by HAT at 2008-10-14 10:42 PM:
建议 s11ss 兄以后使用jgp/gif格式上传附件,可以比bmp更加节约论坛空间。

改成png的了,最小

2008-10-14 22:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
aihejiating
新手上路





积分 18
发帖 14
注册 2008-10-14
状态 离线
『第 8 楼』:  

谢谢s11ss,我的问题得到完满的解决。
if "!list:~0,1!"=="1" cd %root% & md !list:~2! & cd !list:~2! & set new=
这一句只对开头是1的内容起作用,而!new!对所有的内容都其作用,为了避免建立名字为1的文件夹,所以要用set new= 这一句清空new的赋值。

2008-10-14 23:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: