中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: set与IF命令的问题!!! 上一主题 | 下一主题
renziyang
新手上路





积分 10
发帖 4
注册 2006-12-27
状态 离线
『楼 主』:  set与IF命令的问题!!!

各位大大!!小弟有礼了!!

set "STARTPRGNAME=%STARTPRGNAME:"=%"
语句中:"=%"表示什么意思?

if /i "%STARTPRGNAME%" == "cmd" goto :cmd_exe
语句中/i表示什么意思?

if not "%STARTPRGNAME:.bat=%" == "%STARTPRGNAME%" goto :cmd_or_bat
语句中:.bat表示什么意思?

谢谢各位大大帮忙!!!小弟在线等。


──────────────── 版务记录 ────────────────
执行:namejm
修改后标题:set与IF命令的问题!!!
说明:因修改后的标题仍然过于模糊,不便于论坛的搜索和管理,
  请在三日内继续修改标题。

──────────────── 版务记录 ────────────────



[ Last edited by namejm on 2006-12-26 at 04:33 PM ]

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

batch fan


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

  1、那是字符串替换语句,在这里是把所有的引号置换为空,也就是去掉所有的引号。用法在 set 帮助里有,请看:
环境变量替换已如下增强:

    %PATH:str1=str2%

会扩展 PATH 环境变量,用 "str2" 代替扩展结果中的每个 "str1"。
要有效地从扩展结果中删除所有的 "str1","str2" 可以是空的。
"str1" 可以以星号打头;在这种情况下,"str1" 会从扩展结果的
开始到 str1 剩余部分第一次出现的地方,都一直保持相配。
  2、if 中的 /i 参数表示比较字符串的时候,忽略大小写;

  3、和1是一样的道理。

   此帖被 +1 点积分    点击查看详情   
评分人:【 muya05 分数: +1  时间:2006-12-27 11:48




尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-12-27 04:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复
renziyang
新手上路





积分 10
发帖 4
注册 2006-12-27
状态 离线
『第 3 楼』:  

谢谢大大帮忙,小弟感激中……

2006-12-27 05:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
renziyang
新手上路





积分 10
发帖 4
注册 2006-12-27
状态 离线
『第 4 楼』:  

能否再清楚的解释一下1和3,我有些看不明白。

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




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

比如:abcd 将c替换为x

代码:
@echo off
set str=abcd
set str=%str:c=x%
echo %str%
pause>nul


   此帖被 +1 点积分    点击查看详情   
评分人:【 muya05 分数: +1  时间:2006-12-27 11:46




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





积分 10
发帖 4
注册 2006-12-27
状态 离线
『第 6 楼』:  

我个人理解,是不是这样的?
1 中%STARTPRGNAME:"=% 的意义为用空字符串代替了STARTPRGNAME环境变量中所有的:字符。
3 中%STARTPRGNAME:.bat=% 的意义是用空字符串代替了STARTPRGNAME环境变量中所有的.字符
我说的对不对?请各位大大指正。

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




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 7 楼』:  

1、不是:字符,而是"字符
2、不是.字符,而是.bat字符

:字符类似“我说:”的:字符用法

2006-12-27 05:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




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

原来楼主没看我的代码



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




积分 783
发帖 268
注册 2006-12-26
状态 离线
『第 9 楼』:  呵呵 锐目



  Quote:
Originally posted by zh159 at 2006-12-26 04:30 PM:
1、不是:字符,而是"字符
2、不是.字符,而是.bat字符

:字符类似“我说:”的:字符用法



2006-12-27 05:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复
muya05
初级用户





积分 58
发帖 22
注册 2006-12-7
状态 离线
『第 10 楼』:  

看了namejm兄的解说和ccwan兄的代码才知道set原来还可以这样用,
PF!

[ Last edited by muya05 on 2006-12-26 at 10:47 PM ]

2006-12-27 11:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: