[讨论] "set" 你知多少?--------应用实例
🖨 打印本页
标题:[讨论] "set" 你知多少?--------应用实例
作者:dosz | 时间:2006-02-18 06:49 | 标题:[讨论] "set" 你知多少?--------应用实例
SET:设计DOS环境变量。
用法:SET 变量=[变量值]
[讨论] "set" 你知多少?--------应用实例
要求:
1.添加注解, 用REM:或 ::
2.说明通过的测试环境
作者:dosz | 时间:2006-02-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-02-18 19:09
谢了,顶一下,看了这贴子,能开阔思路,一知半解的不明白SET命令的应用,这回明白一点.这样的好贴子越多越好.
作者:dosz | 时间:2006-02-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-03-14 18:36 | 标题:顶!!!!!!!!!!!!!!
这么好的帖子,怎么就不见下文了呢?
作者:hxuan999 | 时间:2006-11-23 06:10
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-05 21:51
是啊,找了许多方,都没看到有关的解释,这儿提了们头,也没了结果.
作者:redtek | 时间:2006-12-05 22:07
感谢楼主开创了这么有价值的贴子,学习了~~~
作者:bc12060101 | 时间:2006-12-05 22:17
嘿嘿,怎么楼主说了个开头被打断后就不说了?您倒是接着说啊,这么多弟兄可都在等着呐。
作者:af01 | 时间:2006-12-12 05:05
没例子。。还是搞不大清楚
作者:vlanmaster | 时间:2006-12-20 05:22
为什么这么好的贴子没有下文了呢?
作者:sleet1986 | 时间:2007-01-13 11:21
还是不太清楚哦!!
作者:bob1989 | 时间:2007-01-25 00:20
说啊
作者:oilio | 时间:2007-01-25 05:19
不错啊,我也想知道下文。
作者:sphudun | 时间:2007-02-08 05:02
生于WIN时代DOS七窍已通六窍
作者:zjnbwdj | 时间:2007-02-09 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-02-10 13:58
估计是双盘符 分区的问题
作者:lizaoyou | 时间:2007-02-10 14:20
原本很好的主题,变猜谜了。
作者:dosz | 时间:2007-02-20 12:36
Originally posted by af01 at 2006-12-12 05:05:
没例子。。还是搞不大清楚
=== dir列出当前目录和文件并追加到 dosz.txt ;dosz766.txt.bat ===
::
http://www.cn-dos.net/forum/viewthread.php?tid=19150&fpage=1&highlight=&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就可以了
作者:dosz | 时间:2007-02-20 12:42
Originally posted by vlanmaster at 2006-12-20 05:22:
为什么这么好的贴子没有下文了呢?
=== 清除系统垃圾文件.bat ===
::
http://www.cn-dos.net/forum/viewthread.php?tid=19150&fpage=1&highlight=&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
作者:gne3 | 时间:2007-02-21 08:42
不要太监啊。。。继续说啊
作者:qsj | 时间:2007-03-21 08:26
start 是cmd命令!
作者:kkoper | 时间:2007-03-25 23:24
同志们给个正解啊!
作者:mtiankong | 时间:2007-04-20 22:33
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-06-21 21:23
哈哈,这个帮助还不错,好像系统的SET /?没有讲这么多吧。感谢。。。。。
作者:myddos | 时间:2007-09-06 09:23
为什么下载不了付件?
作者:lanpika | 时间:2007-09-16 11:48
楼主是想让大家一起动脑子来测试各种情况,唉……
作者:jk328019419 | 时间:2007-11-09 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-04-04 13:23
謝了,頂一下,看了這貼子,能開闊思路,一知半解的不明白SET命令的應用,這回明白一點.這樣的好貼子越多越好.
作者:haiou327 | 时间:2008-08-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-08-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-09-02 21:18
这贴不好~ 没下文~
作者:sou125 | 时间:2008-11-24 11:45
好贴
只是让人要等好久才有下文
作者:alchemist | 时间:2008-11-27 17:02
基本上是批处理专用
作者:cmdfans | 时间:2008-11-27 17:08
好抽象啊??有些看不懂
作者:luxipeng | 时间:2008-12-01 21:19
都没有举多少关于set的例子
作者:mysuntjy | 时间:2008-12-03 06:12
请LZ把WIN98启动盘的AUTOEXEC.BAT中SET LglDrv=的用法讲一讲,谢谢!
作者:feiyuguochen | 时间:2008-12-12 21:37 | 标题:例子
要是有一些经典的例子就好了!
作者:iamqiuhui | 时间:2009-02-03 14:21
贴主真明白了吗?
看了你的文章和回复,
感觉不够专业
作者:523066680 | 时间:2009-02-03 17:19
主要是来讨论的。。。。。 不过这帖子也是2006的了……
斑竹们是不是考虑下清楚连续几十楼的口水?
作者:HAT | 时间:2009-02-03 20:42 | 标题:Re 69楼
你去申请版主吧,我支持你在这里删帖:)
作者:523066680 | 时间:2009-02-03 22:10
咦 不要的 ~ 这个称号我很崇敬的。
等我以后有一定能力而且可以长时间上网的话 我就自荐下。
作者:mn960mn | 时间:2009-02-28 22:27
没例子????? 还是搞不大清楚
在举几个例子吧
作者:liuxy321 | 时间:2009-03-01 00:28
呵。。。 瞧成SED,以为是SED命令介绍。
作者:shoot | 时间:2009-03-01 07:57
∑↑↓の看看
作者:limiqi | 时间:2009-03-01 11:29
不错,不错,来看看~~
作者:xcyd002 | 时间:2009-03-02 01:28
真沮丧,怎么想学东西就这么难呢?
作者:253255441 | 时间:2009-03-05 11:31
怎么没有下文了 是不是等差数列啊
作者:ningxy | 时间:2009-03-05 13:04
不错啊
作者:liuok | 时间:2009-03-07 23:10
为什么这么好的贴子没有下文了呢?
作者:xueshan007050 | 时间:2010-04-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-04-22 12:15
好高深哦这东西
作者:ysjpl1989 | 时间:2010-04-28 10:35
学习了~~~!
作者:DOSnewsuser | 时间:2010-04-28 16:52
顶你.................
作者:kexianlin | 时间:2010-06-05 08:27
这贴子是让大家自己讨论的,大家各抒己见
作者:huaqiaochy | 时间:2010-06-05 16:03
pause >>nul
有什么用?
作者:huaqiaochy | 时间:2010-06-05 16:05
知道了。。
作者:tengrong1978 | 时间:2010-06-10 19:34
感谢楼主开创了这么有价值的贴子,学习了~~~
作者:fenizi129427 | 时间:2010-06-16 10:50
学习了
作者:francisgai | 时间:2010-07-14 17:08
有例才强大
作者:renmingwu | 时间:2010-07-23 16:12
楼主讲完,咱们练习下就行了!
作者:kaneta2010 | 时间:2010-07-23 18:25
好东西
作者:WUYAN520 | 时间:2010-08-02 12:33
期待下文中...
来源:https://www.cn-dos.net/forum/viewthread.php?tid=19150 · 打印时间 2026-06-16 05:20