Board logo

标题: [讨论] "set" 你知多少?--------应用实例 [打印本页]

作者: dosz     时间: 2006-2-18 06:49    标题: [讨论] "set" 你知多少?--------应用实例

SET:设计DOS环境变量。
用法:SET 变量=[变量值]

[讨论] "set" 你知多少?--------应用实例
要求:
1.添加注解, 用REM:或 ::
2.说明通过的测试环境
作者: dosz     时间: 2006-2-18 07:22    标题: 打开目录.bat

====== 打开目录.bat =======
set drv=C:\WINDOWS\system32
REM 要设置名为 drv的变量,使它等于字符串C:\WINDOWS\system32(C盘中的WINDOWS\system32目录).
start %drv%
REM 打开目录(打开C盘中的WINDOWS\system32目录).
REM C盘XP测试通过
作者: sxhc6868     时间: 2006-2-18 19:09
谢了,顶一下,看了这贴子,能开阔思路,一知半解的不明白SET命令的应用,这回明白一点.这样的好贴子越多越好.
作者: dosz     时间: 2006-2-25 12:27
你知道这有什么区别吗?
=============TESTGHO.BAT=========
set LgDrv=1 start 2 A: 7 C: 10 D: 13 E: 16 F: 19 G: 22 H: 25 I: 28 J:
set LgDrv=%LgDrv% 31 K: 34 L: 37 M: 40 N: 43 O: 46 P: 49 Q: 52 R: 55 S: 58
set LgDrv=%LgDrv% T: 61 U: 64 V: 67 W: 70 X: 73 Y: 76 Z: 78

=============TEST.BAT=============
set LgDrv=start A: Z: Y: X: W: V: U: T: S: R: Q: P: O:
set LgDrv=%LgDrv% N: M: L: K: J: I: H: G: F: E: D: C: over

[ Last edited by dosz on 2006-2-25 at 12:29 ]
作者: lks205     时间: 2006-3-14 18:36    标题: 顶!!!!!!!!!!!!!!

这么好的帖子,怎么就不见下文了呢?
作者: hxuan999     时间: 2006-11-23 06:10


  Quote:
Originally posted by dosz at 2006-2-25 00:27:
你知道这有什么区别吗?
=============TESTGHO.BAT=========
set LgDrv=1 start 2 A: 7 C: 10 D: 13 E: 16 F: 19 G: 22 H: 25 I: 28 J:
set LgDrv=%LgDrv% 31 K: 34 L: 37 M: 40 N: 43 O: 46 P: 49 Q ...

为什么不说了.真是的.
作者: ynjzlzd     时间: 2006-12-5 21:51
是啊,找了许多方,都没看到有关的解释,这儿提了们头,也没了结果.
作者: redtek     时间: 2006-12-5 22:07
感谢楼主开创了这么有价值的贴子,学习了~~~
作者: bc12060101     时间: 2006-12-5 22:17
嘿嘿,怎么楼主说了个开头被打断后就不说了?您倒是接着说啊,这么多弟兄可都在等着呐。
作者: af01     时间: 2006-12-12 05:05
没例子。。还是搞不大清楚
作者: vlanmaster     时间: 2006-12-20 05:22
为什么这么好的贴子没有下文了呢?
作者: sleet1986     时间: 2007-1-13 11:21
还是不太清楚哦!!
作者: bob1989     时间: 2007-1-25 00:20
说啊
作者: oilio     时间: 2007-1-25 05:19
不错啊,我也想知道下文。
作者: sphudun     时间: 2007-2-8 05:02
生于WIN时代DOS七窍已通六窍
作者: zjnbwdj     时间: 2007-2-9 10:57
我想可能是等同于如下这些吧
set LglDrv=27 * 26 Z 25 Y 24 X 23 W 22 V 21 U 20 T 19 S 18 R 17 Q 16 P 15
set LglDrv=%LglDrv% O 14 N 13 M 12 L 11 K 10 J 9 I 8 H 7 G 6 F 5 E 4 D 3 C
以上是在WIN98启动盘的AUTOEXEC.BAT中所得,其中还有一个SETRAMD.BAT,我想这些数字主要是为了SETRAMD.BAT中的findramd的值所服务的吧.是为了得到虚拟盘和CD-ROM的盘符作准备.
作者: csx163     时间: 2007-2-10 13:58
估计是双盘符 分区的问题
作者: lizaoyou     时间: 2007-2-10 14:20
原本很好的主题,变猜谜了。
作者: dosz     时间: 2007-2-20 12:36


  Quote:
Originally posted by af01 at 2006-12-12 05:05:
没例子。。还是搞不大清楚

=== dir列出当前目录和文件并追加到 dosz.txt ;dosz766.txt.bat ===
:: http://www.cn-dos.net/forum/view ... ghlight=&page=1
:: 『第 14 楼』: af01  2006-12-12 05:05

@ECHO off
cls
color 0B
echo [没例子。。还是搞不大清楚]
ECHO.
echo 你好!
echo 这是你要的比量批处理实例:
ECHO.
echo 列出当前目录和文件并追加到 dosz.txt; dosz.txt766.bat
pause > nul

ECHO. >> dosz.txt
ECHO ========================================================== >> dosz.txt
ECHO %DATE% %TIME% >> dosz.txt
dir /a /o /b>> dosz.txt
ECHO ========================结束============================== >> dosz.txt

: exit ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

ECHO. >> dosz766.txt
ECHO ============================================================== >> dosz766.txt
ECHO %DATE% %TIME% >> dosz766.txt
dir /a /o >> dosz766.txt
ECHO ========================结束================================== >> dosz766.txt

exit
在Win2000/XP/2003系统的CMD下,环境变量 %DATE% 和 %TIME% 就已经保存了当前的日期和时间,所以 ECHO %DATE% >>IP.TXT 和 ECHO %TIME%>>IP.TXT就可以了
附件 1: dir列出当前目录.rar (2007-2-20 12:36, 685 bytes, 下载附件所需积分 1点 ,下载次数: 47)

作者: dosz     时间: 2007-2-20 12:42


  Quote:
Originally posted by vlanmaster at 2006-12-20 05:22:
为什么这么好的贴子没有下文了呢?

=== 清除系统垃圾文件.bat ===

:: http://www.cn-dos.net/forum/view ... ghlight=&page=1
@echo off
cls
color b
ECHO.
echo 你好!
echo.
echo 按任意键... 打开目录查看临时文件 ... 清除系统垃圾
pause >nul
echo 正在清除系统垃圾文件,请稍等......

:: XP= X:\WINDOWS\Temp
:: 2K= X:\WINNT\Temp
START %windir%\Temp
del %windir%\Temp\*.* /Q
:: ==============================================================
cls
color e
ECHO.
echo 你好!
echo 按任意键... 继续打开另一目录查看临时文件 ... 清除系统垃圾
pause >nul
echo 正在清除系统垃圾文件,请稍等......
cls

:: =  X:\TEMP目录
if exist %systemdrive%\TEMP start %systemdrive%\TEMP
if exist %systemdrive%\TEMP del %windir%\..\..\Temp\*.* /Q
:: ==============================================================
cls
color b
ECHO.
echo 你好!
echo 按任意键... 删除X:\登陆用户\temp目录下的另时文件,清除系统垃圾
:: 删除X:\Documents and Settings\登陆用户\temp目录下的文件和子目录,清除系统垃圾
pause >nul
echo 正在清除系统垃圾文件,请稍等......

cls
:: = X:\Documents and Settings\登陆用户\Local Settings\Temp
start %temp%
rd %temp% /s /q & md %temp%
:: del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
:: ==============================================================
cls
color e
ECHO.
echo 你好!
echo 按任意键... 继续清除系统垃圾
pause >nul
echo 正在清除系统垃圾文件,请稍等......
cls

if exist del /f /s /q %systemdrive%\*.tmp
if exist del /f /s /q %systemdrive%\*._mp
if exist del /f /s /q %systemdrive%\*.log
if exist del /f /s /q %systemdrive%\*.gid
if exist del /f /s /q %systemdrive%\*.chk
if exist del /f /s /q %systemdrive%\*.old
if exist del /f /s /q %systemdrive%\recycled\*.*
if exist del /f /s /q %windir%\*.bak
:: del /f /s /q %windir%\prefetch\*.*
if exist rd /s /q %windir%\temp & md %windir%\temp
:: del /f /q %userprofile%\cookies\*.*
if exist del /f /q %userprofile%\recent\*.*
:: del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
if exist del /f /s /q "%userprofile%\recent\*.*"
echo 清除系统LJ完成
echo.
echo                  dosz 小猪猪制作
echo.
echo                               二○○七年二月一八日
pause >nul
附件 1: 清除系统垃圾文件.rar (2007-2-20 12:42, 819 bytes, 下载附件所需积分 1点 ,下载次数: 33)

作者: gne3     时间: 2007-2-21 08:42
不要太监啊。。。继续说啊
作者: qsj     时间: 2007-3-21 08:26
start 是cmd命令!
作者: kkoper     时间: 2007-3-25 23:24
同志们给个正解啊!
作者: mtiankong     时间: 2007-4-20 22:33


  Quote:
Originally posted by dosz at 2006-2-24 11:27 PM:
你知道这有什么区别吗?
=============TESTGHO.BAT=========
set LgDrv=1 start 2 A: 7 C: 10 D: 13 E: 16 F: 19 G: 22 H: 25 I: 28 J:
set LgDrv=%LgDrv% 31 K: 34 L: 37 M: 40 N: 43 O: 46 P: 49 Q ...

怎么没了下文呢???
作者: xuxinxiangxue     时间: 2007-6-21 21:23
哈哈,这个帮助还不错,好像系统的SET /?没有讲这么多吧。感谢。。。。。
作者: myddos     时间: 2007-9-6 09:23
为什么下载不了付件?
作者: lanpika     时间: 2007-9-16 11:48
楼主是想让大家一起动脑子来测试各种情况,唉……
作者: jk328019419     时间: 2007-11-9 20:02
我就怎么没觉的有的好呢,讲的太不够清楚啊
作者: bgli103     时间: 2007-11-15 01:45
看得不是太懂,,郁闷
作者: wangfei8842     时间: 2007-11-15 09:34
好帖,人见人顶!
作者: huahua0919     时间: 2007-11-17 15:21
好的头,不应该拿文档来帖!
作者: huahua0919     时间: 2007-11-17 15:58
文档要看至少八遍
作者: lgggyyy     时间: 2008-4-4 13:23
謝了,頂一下,看了這貼子,能開闊思路,一知半解的不明白SET命令的應用,這回明白一點.這樣的好貼子越多越好.
作者: haiou327     时间: 2008-8-10 20:01

set LgDrv=1 start 2 A: 7 C: 10 D: 13 E: 16 F: 19 G: 22 H: 25 I: 28 J:
set LgDrv=%LgDrv% 31 K: 34 L: 37 M: 40 N: 43 O: 46 P: 49 Q: 52 R: 55 S: 58
set LgDrv=%LgDrv% T: 61 U: 64 V: 67 W: 70 X: 73 Y: 76 Z: 78
这段是赋LGDRV为字符串"1 start 2 A: 7 C: 10 D: 13 E: 16 F: 19 G: 22 H: 25 I: 28 J: 31 K: 34 L: 37 M: 40 N: 43 O: 46 P: 49 Q: 52 R: 55 S: 58 T: 61 U: 64 V: 67 W: 70 X: 73 Y: 76 Z: 78"
这句改成set LgDrv=1 start 2 A: 7 C: 10 D: 13 E: 16 F: 19 G: 22 H: 25 I: 28 J:
set LgDrv=%LgDrv% 31 K: 34 L: 37 M: 40 N: 43 O: 46 P: 49 Q: 52 R: 55 S: 58
set LgDrv=%LgDrv% T: 61 U: 64 V: 67 W: 70 X: 73 Y: 76 Z: 78
echo %lgdrv%
pause

就可看到变量%LGDRV%的值

set LgDrv=start A: Z: Y: X: W: V: U: T: S: R: Q: P: O:
set LgDrv=%LgDrv% N: M: L: K: J: I: H: G: F: E: D: C: over
这段是赋LGDRV为字符串"start A: Z: Y: X: W: V: U: T: S: R: Q: P: O: N: M: L: K: J: I: H: G: F: E: D: C: over"
                       
这句改成set LgDrv=start A: Z: Y: X: W: V: U: T: S: R: Q: P: O:
set LgDrv=%LgDrv% N: M: L: K: J: I: H: G: F: E: D: C: over
echo %lgdrv%
pause

就可看到变量%LGDRV%的值


[ Last edited by haiou327 on 2008-8-10 at 08:20 PM ]
作者: haiou327     时间: 2008-8-10 20:11
通常
set LgDrv=Z Y X  W  V  U  T  S R Q P O N M L K  I H G F E D C

set LgDrv=Z Y X  W  V  U  T  S R Q P O N
set LgDrv=%LgDrv% M L K  I H G F E D C
这两种

[ Last edited by haiou327 on 2008-8-10 at 08:17 PM ]
作者: ibest4     时间: 2008-9-2 21:18
这贴不好~ 没下文~
作者: sou125     时间: 2008-11-24 11:45
好贴
只是让人要等好久才有下文
作者: alchemist     时间: 2008-11-27 17:02
基本上是批处理专用
作者: cmdfans     时间: 2008-11-27 17:08
好抽象啊??有些看不懂
作者: luxipeng     时间: 2008-12-1 21:19
都没有举多少关于set的例子
作者: mysuntjy     时间: 2008-12-3 06:12
请LZ把WIN98启动盘的AUTOEXEC.BAT中SET LglDrv=的用法讲一讲,谢谢!
作者: feiyuguochen     时间: 2008-12-12 21:37    标题: 例子

要是有一些经典的例子就好了!
作者: iamqiuhui     时间: 2009-2-3 14:21
贴主真明白了吗?
看了你的文章和回复,
感觉不够专业
作者: 523066680     时间: 2009-2-3 17:19
主要是来讨论的。。。。。  不过这帖子也是2006的了……

斑竹们是不是考虑下清楚连续几十楼的口水?
作者: HAT     时间: 2009-2-3 20:42    标题: Re 69楼

你去申请版主吧,我支持你在这里删帖:)
作者: 523066680     时间: 2009-2-3 22:10
咦 不要的 ~  这个称号我很崇敬的。
等我以后有一定能力而且可以长时间上网的话 我就自荐下。
作者: mn960mn     时间: 2009-2-28 22:27
没例子????? 还是搞不大清楚
在举几个例子吧
作者: liuxy321     时间: 2009-3-1 00:28
呵。。。 瞧成SED,以为是SED命令介绍。
作者: shoot     时间: 2009-3-1 07:57
∑↑↓の看看
作者: limiqi     时间: 2009-3-1 11:29
不错,不错,来看看~~
作者: xcyd002     时间: 2009-3-2 01:28
真沮丧,怎么想学东西就这么难呢?
作者: 253255441     时间: 2009-3-5 11:31
怎么没有下文了 是不是等差数列啊
作者: ningxy     时间: 2009-3-5 13:04
不错啊
作者: liuok     时间: 2009-3-7 23:10
为什么这么好的贴子没有下文了呢?
作者: xueshan007050     时间: 2010-4-21 15:21
@echo off
set LgDrv=1 start 2 A: 7 C: 10 D: 13 E: 16 F: 19 G: 22 H: 25 I: 28 J:
set LgDrv=%LgDrv% 31 K: 34 L: 37 M: 40 N: 43 O: 46 P: 49 Q: 52 R: 55 S: 58
set LgDrv=%LgDrv% T: 61 U: 64 V: 67 W: 70 X: 73 Y: 76 Z: 78

echo %LgDrv%
echo  ---------------------------------------
echo  ---------------------------------------
set LgD=start A: Z: Y: X: W: V: U: T: S: R: Q: P: O:
set LgD=%LgDrv% N: M: L: K: J: I: H: G: F: E: D: C: over

echo %LgD%

pause

我觉得楼主开始的时候写这段代码的意思是:
1.set  赋值的变量后面的 会认为成字符串。
2.而且可以使用 拼接字符。
作者: 165527339     时间: 2010-4-22 12:15
好高深哦这东西
作者: ysjpl1989     时间: 2010-4-28 10:35
学习了~~~!
作者: DOSnewsuser     时间: 2010-4-28 16:52
顶你.................
作者: kexianlin     时间: 2010-6-5 08:27
这贴子是让大家自己讨论的,大家各抒己见
作者: huaqiaochy     时间: 2010-6-5 16:03
pause >>nul
有什么用?
作者: huaqiaochy     时间: 2010-6-5 16:05
知道了。。
作者: tengrong1978     时间: 2010-6-10 19:34
感谢楼主开创了这么有价值的贴子,学习了~~~
作者: fenizi129427     时间: 2010-6-16 10:50
学习了
作者: francisgai     时间: 2010-7-14 17:08
有例才强大
作者: renmingwu     时间: 2010-7-23 16:12
楼主讲完,咱们练习下就行了!
作者: kaneta2010     时间: 2010-7-23 18:25
好东西
作者: WUYAN520     时间: 2010-8-2 12:33
期待下文中...