楼 主
代码(1)和代码(2)中a的用法,我看不太明白!
发表于 2008-05-07 19:28 · 中国 江苏 苏州 电信
初级用户
★
积分 47 发帖 46 注册 2008-01-17 19:01 UID 108862 性别 男
状态 离线
代码一:
CODE: [Copy to clipboard]
--------------------------------------------------------------------------------
:::::::::::::::::::
@echo off
set /p a=<%0
echo %a%&pause>nul
代码二:
CODE: [Copy to clipboard]
--------------------------------------------------------------------------------
::::::&color 02
@echo off
set /p a=<%0
echo %a%&pause>nul
代码(1)和代码(2)中a的用法,我看不太明白,谁能帮我解释一下呢!
第 2 楼
发表于 2008-05-07 19:54 · 中国 山东 淄博 联通
银牌会员
★★★
积分 1,604 发帖 646 注册 2008-04-13 23:39 UID 115804 性别 男
状态 离线
从批处理自身中取值,第一段代码会输出:::::::::::::::::::
第二段会输出::::::
a只是一个变量。。。可以换成其他字符,但最后的echo %a% 也要改变。。- -|||
不知这样说能明白否~?
第 3 楼
发表于 2008-05-07 19:56 · 中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212 发帖 2,478 注册 2007-02-08 23:39 UID 79003 性别 男
状态 离线
第 4 楼
发表于 2008-05-07 20:01 · 中国 江苏 苏州 电信
初级用户
★
积分 47 发帖 46 注册 2008-01-17 19:01 UID 108862 性别 男
状态 离线
第 5 楼
发表于 2008-05-07 20:10 · 中国 山东 淄博 联通
银牌会员
★★★
积分 1,604 发帖 646 注册 2008-04-13 23:39 UID 115804 性别 男
状态 离线
Originally posted by wujingyi at 2008-5-7 08:01 PM:
set /p a=<%0什么意思,不懂!
定义一个变量a a的值是从批处理自身中取得的第一行。。。 %0 代表批处理自身。。/p 参数是用户输入的内容。。。有了这个"<" 就不必用户输入,自动从自身中取值了~ "<" 是定向输入。。。
set/? 可以查看set的用法
另外请教一下高手,代码二中的color 02 是不是执行了两次~?
第 6 楼
发表于 2008-05-07 20:15 · 中国 江西 吉安 电信
初级用户
★
积分 97 发帖 34 注册 2007-11-16 16:04 UID 102852 性别 男
状态 离线
< 的意思是把 后面的值赋予前面 %0是自身的意思,
<%0 的意思就是把批处理自身赋予变量a
第 7 楼
发表于 2008-05-07 20:15 · 中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212 发帖 2,478 注册 2007-02-08 23:39 UID 79003 性别 男
状态 离线
你运行了还不知道?
::::::=。=我是第一行~~
@echo off
set /p a=<%0
echo %a%&pause>nul
第 8 楼
发表于 2008-05-07 20:16 · 中国 江苏 苏州 电信
初级用户
★
积分 47 发帖 46 注册 2008-01-17 19:01 UID 108862 性别 男
状态 离线
定义一个变量a a的值是从批处理自身中取得的第一行。。。
定义一个变量a a的值是从批处理自身中取得的第一行。。。
如果我要取得批处理自身的第二行,该怎么写呢?
第 9 楼
发表于 2008-05-07 20:20 · 中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212 发帖 2,478 注册 2007-02-08 23:39 UID 79003 性别 男
状态 离线
第 10 楼
发表于 2008-05-07 20:23 · 中国 江苏 苏州 电信
初级用户
★
积分 47 发帖 46 注册 2008-01-17 19:01 UID 108862 性别 男
状态 离线
第 11 楼
发表于 2008-05-07 20:30 · 中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212 发帖 2,478 注册 2007-02-08 23:39 UID 79003 性别 男
状态 离线
@echo off
for /f "skip=1 delims=" %%i in (%~s0) do (
Set a=%%i
GoTo :ExitFor
)
:ExitFor
echo %a%
pause>nul
第 12 楼
发表于 2008-05-07 20:34 · 中国 山东 淄博 联通
银牌会员
★★★
积分 1,604 发帖 646 注册 2008-04-13 23:39 UID 115804 性别 男
状态 离线
第 13 楼
发表于 2008-05-07 20:44 · 中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212 发帖 2,478 注册 2007-02-08 23:39 UID 79003 性别 男
状态 离线
第 14 楼
发表于 2008-05-08 16:17 · 中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962 发帖 2,753 注册 2003-04-16 00:00 UID 1565 性别 男 来自 河北保定
状态 离线
两个代码有什么区别吗?
set /p a=< %0
set /p a=应该知道是什么意思吧,就是提示用户输入,并将输入内容放到a这个环境变量中。
后面的<,这是一个转向符,表示将标准输入转向后面的%0,而%0则代表批处理本身,这样,批处理本身的第一行就变成了a的内容。
后面的echo %a% & pause >nul就是显示a这个环境变量的内容(也就是批处理的第一行)然后暂停。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“
这个帖子 ”和“
这个帖子 ”并努力遵守,如果可能,请告诉更多的人!
第 15 楼
发表于 2008-05-08 21:17 · 中国 湖北 武汉 电信
版主
★★★★★
积分 11,386 发帖 4,938 注册 2006-07-23 17:10 UID 59080
状态 离线
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正